如何在Unity 3d

时间:2018-02-17 20:56:39

标签: c# unity3d

问题很简单,但我无法在互联网上找到答案。如何获得navmesh的所有多边形,如何找到最接近的多边形,如何找到这些多边形的中心,如何找到连接到特定多边形的多边形,等等?

团结甚至允许这种工作人员还是你需要再次从github下载东西或在资产商店购买一些东西?

我发现这篇文章https://forum.unity.com/threads/accessing-navmesh-vertices.130883/ 但它只能帮助找到顶点,而不是多边形或其他东西..

那么,有没有人知道这件事呢?

1 个答案:

答案 0 :(得分:1)

解决方案

    var navMesh = NavMesh.CalculateTriangulation();
    Vector3[] vertices = navMesh.vertices;
    int[] polygons = navMesh.indices;

来源:https://docs.unity3d.com/ScriptReference/AI.NavMeshTriangulation-indices.html

  

navmesh三角测量的三角指数。   每个三角形包含3个整数。这些整数引用顶点数组。

如果我没弄错的话,应该是每个多边形中的点。

其他有用的方法

https://docs.unity3d.com/540/Documentation/ScriptReference/NavMesh.SamplePosition.html

从此来源:“在指定范围内找到NavMesh上最近的点。”

https://docs.unity3d.com/530/Documentation/ScriptReference/NavMesh.Raycast.html

“跟踪NavMesh上两点之间的一条线。 bool如果光线在到达目标位置之前终止,则为真。否则返回false。 “

https://docs.unity3d.com/530/Documentation/ScriptReference/NavMesh.FindClosestEdge.html

“从NavMesh上的某个点找到最近的NavMesh边缘。”

您究竟需要navmesh数据到底是什么?