初版丧尸行为树中,BTService_Zombie_GetTarget 挂在右侧外层 Sequence 上:
Root Selector
├─ Selector:寻找入口
│ └─ Sequence
│ └─ 寻找入口
└─ Sequence:追踪玩家 ← Service 原本挂在这里
├─ BTService_Zombie_GetTarget
└─ Sequence
├─ 移动到目标
└─ 攻击流程
问题表现是搜索不到玩家后,BTService_Zombie_GetTarget 不再执行;玩家复活时,丧尸也无法重新搜索到玩家。
原因是 Service 还没来得及 Tick,分支就已经失败返回,Service 随之停止。没有开启“开始搜索时立即 Tick”时,进入 Service 所在节点并不会立即执行它。如果后面没有能维持足够时间的 Task,分支存活时间甚至短于 Service 的执行间隔。
可以采用两种处理方式:
- 开启 Service 的“开始搜索时立即 Tick”。
- 将 Service 挂到根合成节点上。
UE 行为树对根合成节点做了特殊处理,挂在根节点上的 Service 会持续执行,直到整棵行为树停止。
Discussion
留言讨论
发表留言时,评论服务会记录必要的 IP 与 User-Agent 信息,用于安全审核和防止滥用。