系列文章目录
Unity新导航系统—NavMeshObstacle组件
前言
NavMeshObstacle组件:用于在场景中定义动态障碍物,来影响导航主体(NavMeshAgent)的路径选择。
这是我的学习笔记,记载的是NavMeshObstacle组件的用法和各个属性的用处(请先去看我的“Unity新导航系统—NavMeshSurface组件 ”的文章,因为这个组件的介绍要基于它),不能保证完全准确但是初学者可以参考一下。
NavMeshObstacle组件
``
烘焙上面的场景。如果不清楚烘焙请看我的“Unity新导航系统—NavMeshSurface组件 ”文章。
我现在想让左边的墙不再当作静态的NavMesh了,而是让它成为动态的障碍物。
给墙添加一个NavMeshObstacle组件,这是用于处理NavMesh中的动态物体的组件。此时重新烘焙墙就不参与NavMesh的烘焙了。
这个脚本挂载到墙上,用来让墙来回运动。
第一个参数Shape:用于设置包围盒的类型,胶囊体或盒子。
Center和Size:用于设置包围盒的中心位置和大小,这个Unity一般会为你自动设置。
勾选Curve后,不需要烘焙它就会自动在墙的四周雕刻出一片无法导航的区域。
但是当你运行游戏后你会发现雕刻出的区域消失了。
这是因为你勾选了Carve Only Stationary即只在它静止时才会雕刻,取消勾选,不需要烘焙,运行游戏你会看到它所在的位置就会被雕刻。
Time To Stationary:当墙静止后再经过多长时间开始雕刻,为了方便观察开启Carve Only Stationary,把Time To Stationary设置为2。
运行游戏禁用脚本它会停止运动,两秒后它会雕刻。
Move Threshold:墙走多远才会进行一次雕刻,改为2后表示每走两米雕刻一次。