2017-02-17 10 views
2

У меня есть самолет, масштаб которого установлен в 1,1,1. Я желаю получить его стартовая позиция и конечная позиция. То, что является позицией при запуске объекта в мировом пространстве и какова конечная позиция. Один простой способ выполнить эту задачу - разместить объект в начале и конце плоскости и получить позиции объекта, но я хочу сделать это через пол Только.Получить начальное и конечное положение объекта в мировом пространстве

Я просто пробовал этот код, но его не занимал позицию в мировом пространстве.

Debug.Log(floor.GetComponent<MeshRenderer>().bounds.min); 
     Debug.Log(floor.GetComponent<MeshRenderer>().bounds.max); 
     Debug.Log(floor.GetComponent<MeshRenderer>().bounds.center); 
     Debug.Log(floor.GetComponent<MeshRenderer>().bounds.extents); 
+0

Ваш код выглядит нормально. Что думают неправильно? Что происходит, когда вы временно создаете новый объект куба на 'bounds.min' и' bounds.max'. Обратите внимание, что преобразование объекта может отличаться от центра. – Kay

+1

Что вы подразумеваете под концом и началом полета? Самолет имеет 4 стороны, вы не можете просто использовать, floor.position и добавить или вычесть половину шкалы этажей в том направлении, которое вы планируете начать или завершить? –

+0

Выполняете ли вы какие-либо манипуляции с самой сеткой? Если это так, попробуйте перечислить границы перерасчета, прежде чем распечатывать границы на консоли. И какие результаты вы получаете. https://docs.unity3d.com/ScriptReference/Mesh.RecalculateBounds.html –

ответ

2

Renderer.bounds будет соответствовать размеру плоскости, если преобразование плоскости согласовано с миром. В другом мире он будет работать, только если нет вращения.

Другой подход, чтобы получить углы плоскости, заключался бы в непосредственном входе в решетчатые вершины. Для этого сначала нужно найти вершины на углах. Забудь об этом.

  1. Создайте 2 новые игровые объекты и разместить их на углах вашего самолета
  2. Родитель два угловых объектов на плоскости объекта

Hierarchy

Каждые углы transform.position теперь будет дают вам место в мировом пространстве независимо от положения, вращения или масштаба объекта родительской плоскости.

Example

+0

Я не хочу, чтобы дополнительные объекты задавали вопрос –