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

虚幻引擎版本: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

相关推荐
真鬼12313 小时前
【Unity 6】Unity6快捷下载,快速下载
unity·游戏引擎
会潜水的小火龙15 小时前
unity打包apk报错Failure to initialize问题解决方法
unity·游戏引擎
平行云17 小时前
实时云渲染平台数据通道,支持3D应用文件上传下载分享无缝交互
linux·unity·云原生·ue5·gpu算力·实时云渲染·像素流送
Sator119 小时前
unity仅用粒子系统实现拖尾
unity·游戏引擎
游乐码19 小时前
Unity基础(五)四元数相关
unity·游戏引擎
想做后端的前端19 小时前
Unity热更新 - HybridCLR & YooAsset
unity·游戏引擎
RPGMZ20 小时前
RPGMZ游戏引擎事件技巧大全
javascript·游戏引擎·事件·rpgmz·rpgmakermz
天若有情67321 小时前
Superpowers 游戏引擎核心应用场景与落地指南
游戏引擎·superpowers
winlife_21 小时前
嵌入式 MCP server vs 外挂桥接进程:引擎编辑器自动化的架构取舍
架构·自动化·编辑器·游戏引擎·架构设计·mcp·编辑器自动化
那个村的李富贵2 天前
Unity自适应文本提示框:从原理到实战
unity·游戏引擎