2013-06-30 1 views
2

Мне нужно получить положение самой дальней вершины для модели, заданной вектором направления и моделью.получить самую удаленную вершину в указанном направлении 3D-модели - Unity

Например

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);

вернется Vertice б

заранее спасибо

+0

Вам нужно расстояние, чтобы вычислить самую дальнюю точку не только в направлении. Если у вас есть направление + опорная точка, вы можете построить линию, по которой вы можете искать самую дальнюю точку из ссылки или построить плоскость, и вы будете искать только на одной стороне плоскости, если ваше направление не используется для определения специальной метрики или измерения. –

ответ

2

Код ниже даст дальнюю точку, но только для сеток без какого-либо submeshes вы можете изменить код немного, чтобы сделать это для submeshes ..

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; 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^