2

方向ベクトルとモデルを指定して、モデルの最も遠い頂点の位置を取得する必要があります。

例えば

obj には次の頂点があります。

vertice a = (0,0,1)
vertice b = (0,1,0)
vertice c = (1,0,0)
vertice d = (0,0,0)

それで

GetPoint(obj, Vector3.up);

頂点bを返します

前もって感謝します

4

1 に答える 1

2

以下のコードは最も遠いポイントを提供しますが、サブメッシュのないメッシュの場合のみ、コードを少し変更してサブメッシュに対して行うことができます..

Vector3 GetFarPoint (Transform obj, Vector3 direction) {

        Vector3[] vertices;
        Vector3 farthestPoint;
        float farDistance;

        vertices = obj.GetComponent<MeshFilter>().mesh.vertices;
        farDistance=0f;

        foreach(Vector3 vert in vertices)
        {
            float temp = Vector3.Dot(direction,vert);
            if(temp>farDistance)
            {
                farDistance = temp;
                farthestPoint = vert;
            }
        }
        return farthestPoint;
    }
于 2013-07-01T14:53:13.467 に答える