【虚幻引擎UE5】SpawnActor生成Character实例不执行AI Move To,未初始化AIController的原因和解决方法

server/2025/3/31 12:07:15/

虚幻引擎版本:5.5.4

 问题描述

        刚创建的Third Person项目里,定义一个BP_Enemy蓝图,拖拽到场景中产生的实例会追随玩家,但SpawnActor产生的实例会固定不动。BP_Enemy蓝图具体设计如下:

BP_Enemy的Event Graph
​​

        又定义了一个Actor蓝图BP_SpawnEnemy,在场景中随机半径内根据BP_Enemy蓝图生成实例,BP_SpawnEnemy蓝图具体设计如下:

BP_SpawnEnemy的Event Graph

        场景中也添加了NavMeshBoundsVolume覆盖,将BP_SpawnEnemy放置在场景中时产生的BP_Enemy实例静止不动,如下图。

可能原因

1. AI Move To节点没有生效

2. SpawnActor产生的实例没有激活,不会执行BeginPlay

3. AI Move To节点的输入有问题

4. NavMeshBoundsVolume设置有问题

分析过程

        问题的关键在于:拖拽到场景中的实例和通过SpawnActor产生的实力有什么区别?

        通过在不同的节点前添加Print String节点,可以发现AI Move To的On Success和On Fail都没有执行,怀疑过是不是异步操作的原因,但更大的可能性是输入存在问题,在AI Move To节点前添加Print String节点打印发现输入都很正常,Pawn和TargetActor能获取DisplayedName,即表明成功获取到实例引用,其他还会是什么输入出现问题呢?

        在两天与豆包的交流里它多次提起“AIController异常”的问题,查看BP_Enemy蓝图里“AI Controller Class”发现设置成功,在SpawnActor后获取实例并打印其AIController,Is Valid节点判断为false,果然是没有初始化。在知乎里查到这样一个设置“Auto Possess AI”,看了选项恍然大悟,该设置用来定义角色的AIController在什么场景下初始化。

根本原因

        配置问题,AIController没有初始化。

解决方案 

       在BP_Enemy蓝图中,确认“AI Controller Class”配置是否设为“AIController”,并修改配置“Auto Possess AI”是否设置正确,各选项含义如下:

1. Disabled 不自动初始化AI Controller

2. Placed in world 当实例在场景初始化时就被放置在场景中,自动初始化AI Controller

3. Spawned 当实例是被生成出来的,生成时自动初始化AI Controller

4. Placed in world or spawned 无论实例是被放置或被生成出来的,都会自动初始化AI Controller


http://www.ppmy.cn/server/176849.html

相关文章

【redis】在 Spring中操作 Redis

文章目录 基础设置依赖StringRedisTemplate库的封装 运行StringList删库 SetHashZset 基础设置 依赖 需要选择这个依赖 StringRedisTemplate // 后续 redis 测试的各种方法,都通过这个 Controller 提供的 http 接口来触发 RestController public class MyC…

[贪心算法]买卖股票的最佳时机 买卖股票的最佳时机Ⅱ K次取反后最大化的数组和 按身高排序 优势洗牌(田忌赛马)

1.买卖股票的最佳时机 暴力解法就是两层循环&#xff0c;找出两个差值最大的即可。 优化&#xff1a;在找最小的时候不用每次都循环一遍&#xff0c;只要在i向后走的时候&#xff0c;每次记录一下最小的值即可 class Solution { public:int maxProfit(vector<int>& p…

C++11QT复习

文章目录 QT C 培训Day1 环境安装和入门&#xff08;2025.03.05&#xff09;Qt 自带的编译器Qt 的编译脚本&#xff1a;qmake / CMake**示例&#xff1a;Test.pro 文件** Qt 的版本控制系统C 中的头文件C 中的命名空间C 中的编译、链接、运行 Day2 C语法和工程实践&#xff08;…

CAM350-14.6学习笔记-1:导入Gerber文件

CAM350-14.6学习笔记-1:导入Gerber文件 使用自动导入器导入Gerber1&#xff1a;导航栏Home下面的Import——Automatic Import——选择文件路径——Next2&#xff1a;设置每层的类型&#xff1a;3&#xff1a;设置叠层4&#xff1a;弹出层别显示框及Gerber显示 按照Allegro输出的…

【python】OpenCV—Template Matching

文章目录 1、功能描述2、原理分析3、代码实现4、效果展示5、完整代码6、涉及到的库函数7、参考 更多有趣的代码示例&#xff0c;可参考【Programming】 1、功能描述 基于 opencv-python 实现模板匹配算法 2、原理分析 算法流程 &#xff08;1&#xff09;滑动窗口 将模板图…

Moonlight-16B-A3B: 变革性的高效大语言模型,凭借Muon优化器打破训练效率极限

近日&#xff0c;由Moonshot AI团队推出的Moonlight-16B-A3B模型&#xff0c;再次在AI领域引发了广泛关注。这款全新的Mixture-of-Experts (MoE)架构的大型语言模型&#xff0c;凭借其创新的训练优化技术&#xff0c;特别是Muon优化器的使用&#xff0c;成功突破了训练效率的极…

c++ 基础题目lambda

1. auto lambda = [](double x) { return static_cast<int>(x); }; 是 匿名函数对象 ,不可直接声明 a.可以赋值给一个与其类型兼容的 std::function 类型的对象 std::function<int(int, int)> lambda = [](int x, int y) { return x + y; }; b.使用具体的 lambda …

分布式唯一ID

微服务 分布式唯一主键ID生成方案_微服务主键生成-CSDN博客 uid-generator-spring-boot-starter 教程-CSDN博客 https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md GitCode - 全球开发者的开源社区,开源代码托管平台