meta data for this page
📚 World/AI
此类控制关于世界的角色AI及寻路相关逻辑。
📒 Static Function
📘 AI.SetActive()
设置世界AI逻辑及寻路开关。
注意:此方法执行激活后,会默认自动开始渲染寻路网格,这是一个相对耗费CPU的异步操作。
function SetActive( active: bool, isFullNavMesh: bool = false )
isFullNavMesh是否生成全局寻路网格(根据地图的大小,会占用大量的CPU,但是会提前渲染寻路网格)
📘 AI.GetActive()
获取世界AI逻辑及寻路开关。
function GetActive(): bool
📘 AI.SetNavMeshSampleDistance()
设置全局网格采样最大距离,默认为5.0,范围限制0.0~128.0。
采样距离影响到网格寻路时的最大容错距离。
function SetNavMeshSampleDistance( sampleDistance: float )
📘 AI.GetNavMeshSampleDistance()
获取全局网格采样最大距离
function GetNavMeshSampleDistance(): float
📘 AI.SetAllNavMeshDirty()
重置全部寻路网格脏数据(重建)。
此方法通常不需要手动调用,除非希望重新烘焙全图寻路数据,这是一个相对耗费CPU的异步操作。
不建议中大型地图使用此方法,应该由每次触发寻路时引擎自动发起烘焙请求。
function SetAllNavMeshDirty()
📘 AI.SetNavMeshDirtyByPos()
重置指定坐标的寻路网格脏数据,该区域范围内的寻路数据(如存在)将会在后续自动重建。
此方法通常不需要手动调用,除非希望动态生成对象参与寻路逻辑,这就需要在合适时机对发生变化的区域进行重建,因为区域可能在之前已经烘焙完成。
function SetNavMeshDirtyByPos( pos: Vector )
📘 AI.SampleNavMeshRandomPoint()
获取指定坐标范围内的随机网格坐标点(已烘焙),此方法会内部遍历多次,但不确保每次都能获取到数据。
如果范围内不存在合适的坐标,将返回VECTOR_NULL。
function SampleNavMeshRandomPoint( pos: Vector, radius: float, sampleDistance: float = -1 ): Vector
radius随机遍历范围sampleDistance采样容错距离(-1继承全局设定)
📘 AI.SampleNavMeshPoint()
获取指定坐标的采样后最终坐标(已渲染的网格坐标)。
如果不存在合适的坐标,将返回VECTOR_NULL。
function SampleNavMeshPoint( pos: Vector, sampleDistance: float = -1 ): Vector
sampleDistance采样容错距离(-1继承全局设定)
📘 AI.IsValidNavMeshPoint()
判断指定坐标是否已被烘焙完成(即合理的寻路坐标)。
如果返回false则表示此区域没有被烘焙,关于AI的移动逻辑也无法到达目标。
通常情况下,关于AI的移动将会在设置目标点时自动请求烘焙(可能会在数秒内完成),如果确实需要主动激活某处NavMesh烘焙,请使用SetNavMeshDirtyByPos()。
function IsValidNavMeshPoint( pos: Vector, sampleDistance: float = -1 ): bool
sampleDistance采样容错距离(-1继承全局设定)