unity3d:如何在运行时在2个navmesh之间交换?

unity3d:如何在运行时在2个navmesh之间交换?,unity3d,Unity3d,我在3D场景中创建了2个navMesh: -1个称为“navBig”的大矩形 -在一个叫做“navCircle”的大矩形内有一个小圆圈 我想在运行时在这两个NavMesh之间交换:有时玩家只能在圆内移动(即在大矩形内),有时他可以在整个矩形内移动 我试过: void Start() { navCircle = GameObject.Find("navCircle"); navBig = GameObject.Find("navBig"); navB

我在3D场景中创建了2个navMesh: -1个称为“navBig”的大矩形 -在一个叫做“navCircle”的大矩形内有一个小圆圈

我想在运行时在这两个NavMesh之间交换:有时玩家只能在圆内移动(即在大矩形内),有时他可以在整个矩形内移动

我试过:

void Start() {
        navCircle = GameObject.Find("navCircle");
        navBig = GameObject.Find("navBig");
        navBig.SetActive(false);
        navCircle.SetActive(true); // this should enable movement inside the circle only
}

但它没有效果:有什么想法吗?

Unity的内置NavMesh系统并不是为处理这类事情而设计的(以及其他通常需要的用例)。Unity github上有一个多NavMesh选项。您可能可以在运行时使用该和交换选项