我需要在给定方向向量和模型的情况下获取模型最远顶点的位置。
例如
obj 有以下顶点:
顶点 a = (0,0,1)
顶点 b = (0,1,0)
顶点 c = (1,0,0)
顶点 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;
}
关于3d - 获取3D模型指定方向上最远的顶点 - Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386299/