建模有岸上,有水,在同一个水平面上。。人不能走到水上去。。

unity3d:NavMeshSurface,寻路,同一水平面不可连接行走_unity3d

子部件设置为不可行走:

unity3d:NavMeshSurface,寻路,同一水平面不可连接行走_同一水平面不可连接行走_02


不能行走的为1

编辑器脚本

[MenuItem("NavMeshTool/AddNotWalk")]
public static void AddNotWalk()
{
GameObject obj = Selection.activeGameObject;
foreach (var trans in obj.transform.GetComponentsInChildren<Renderer>())
{
if (trans.gameObject.GetComponent<NavMeshModifier>() == null)
{
trans.gameObject.AddComponent<NavMeshModifier>();
}

NavMeshModifier nav = trans.gameObject.GetComponent<NavMeshModifier>();
nav.overrideArea = true;
nav.area = 1;
}
}

子部件增加了不可行走的属性

unity3d:NavMeshSurface,寻路,同一水平面不可连接行走_unity3d_03

再点击烘焙,可以看到有同一个水平面上的岸与水边有隔断,即人不可走到水面上