现在的AI MoveTo无论指定Goal是Location还是Actor,都是到达了之后就OnPathFinished结束掉的。但是我们想要AI角色持续追踪,即使到达了也不会退出。一旦Goal Location发生变动或者Goal Actor移动,我们希望AI角色能继续追踪。当然,我们也可以在MoveTo结束之后再调用一次MoveTo,但是当角色已经站在目的地时,就会不停地重复调用MoveTo。我们目前的做法是重载一些PathFollowComponent的方法,比如HasReachedDestination,让角色永远判断到达不了目的地,但是这依然很繁琐,也容易漏容易出BUG。如果UE引擎自带了这个功能就好了,我觉得这还是挺实用的。
你好,我记得有个蓝图节点MoveToLocationOrActor有个参数bUseContinuousGoalTracking选择true应该就可以了
感谢解答。bUseContinuousGoalTracking和我目前的做法是一样的,都是强制重新RequestMove,但是我更希望在PathFollowComponetn组件里去实现,而不是在AITask里。我需要拿到PathFollow的上下文信息,比如我正在追踪哪个Actor。用bUseContinuousGoalTracking的话,如果就在目标旁边,他会返回AlreadyAtGoal,然后跳过RequestMove,下一帧再继续尝试,这样这一帧我拿不到PathFollow的上下文。
明白您的意思,我的理解持续追踪的功能引擎是提供的,只不过你们目前项目有着更复杂的需求,我觉得你们项目可以继续扩展一下继承UAITask_MoveTo抽出子类根据需要缓存一下上下文信息,要么抽出PathFollowComponent做一个持续follow的component
明白了,感谢
不客气的,有问题再交流~