2013-06-21 2 views

ответ

2

Мое предложение было бы вычислить вектор между двумя объектами, как этот

Vector3 objectLine = (object2.transform.position - object1.transform.position); 

Магазин величиной этого вектором

float distance = objectLine.magnitude; 

Затем, нормализует вектор;

objectLine = objectLine.normalized; 

Итерация по линии, instanciating объект, который вы хотите создать определенные расстояния

Vector3 creationPoint = object1.transform.position; 
float creationPointDistance = (object1.transform.position - 
    object1.transform.position); 
while(creationPointDistance < distance) 
{ 
    creationPoint += objectLine * NEW_OBJECT_DISTANCE; 
    creationPointDistance = (object1.transform.position - 
     object1.transform.position); 
    if(creationPointDistance < distance) 
    { 
     objects.Add((GameObject)Instanciate(newObject, creationPoint, 
      new Vector3(0.0f,0.0f,0.0f))); 
    } 
} 

Что это будет сделать, это установить начальную точку быть Object1 ПОЗИЦИИ. Затем он перемещает заданное расстояние вдоль вектора между объектом 1 и объектом 2, проверяет, находится ли он внутри двух объектов, и если это так, инициализируйте объект, сохраняя его в списке игровых объектов.

Это, надеюсь, должно это сделать. У меня нет единства (или любой IDE) передо мной, чтобы проверить синтаксис.

4
var centerLocation : Vector3 = Vector3.Lerp(object2.transform.position - object1.transform.position, 0.5); 

Vector3.Lerp определит местоположение Vector3 между 2 Vector3s с заданным процентом. 0,5 = 50%.

+0

гораздо более элегантное решение, это должен быть принятый ответ – raphadko