为什么OnMouseDown函数hit.triangleIndex返回-1?

时间:2017-04-15 22:34:46

标签: c# unity3d unity5

void OnMouseDown()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 1000.0f))
            {
                int[] triangles = transform.GetComponent<MeshFilter>().mesh.triangles;
                if (hit.triangleIndex != -1 && (hit.triangleIndex * 3) < triangles.Length)
    }

当我点击网格上的一个三角形时,有两个使用断点进入函数,但我看到hit.triangleIndex为-1。

在数组三角形中,我有6个项目:

index 0 = 2
index 1 = 1 
index 2 = 0
index 3 = 2
index 4 = 3
index 5 = 1

1 个答案:

答案 0 :(得分:2)

  

三角形索引仅在被击中的对手是a时才有效   MeshCollider。

RaycastHit.triangleIndex