方向ベクトルとモデルを指定して、モデルの最も遠い頂点の位置を取得する必要があります。
例えば
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を返します
前もって感謝します
以下のコードは最も遠いポイントを提供しますが、サブメッシュのないメッシュの場合のみ、コードを少し変更してサブメッシュに対して行うことができます..
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;
}