准备
开始前先将导航网格放入关卡中,并按 P 键切换导航区域的显示与否。
机制
利用AI MoveTo可以每次让人物移动到一个位置,再利用回调函数+延时函数就可以实现递归延时重复调用,从而达到人物反复移动的目的。
三个比较陌生的蓝图结点
AI MoveTo
引脚解释:
- Pawn: 对进行移动的人物自身的引用。
- Destination: 目的地(三维向量)。
- Target Actor: 字面意思,需要到达的目标对象,一般不和
Destination
同时使用。 - Acceptance Radius: 与玩家的距离小于该值判断为重叠。
- Stop on Overlap: 是否在判断重叠后停止。
GetRandomReachablePointInRadius
用来获取一个随意大小的可以到达的半径。
Set Timer by Event
为事件设置一个延迟,连接事件后再连接循环相当于反复执行事件。
一次随机移动
有了上述的基础,就可以写出一个在一定范围内随机移动到随机位置的事件。
我们在事件中直接的去调用AI MoveTo
蓝图,并将需要移动的角色设置为对AI人物自身的引用,目的地通过人物当前的位置计算而来,利用提到的获取随机可以到达的位置来获取一个随机可以到达的位置,并将这个到达的位置传递给Destitnation
作为目的地,这里我设置我重叠后停止移动。
运行后可以发现,人物就有了一次简单的随机移动,之后想让人物反复随机移动只需加上延时和回调。
如你所见,加上了回调就可以反复随机走动了。
好了,我要去玩黑神话悟空了,四妹还在等我带她出盘丝洞~