Unity 5.4 найти длину объекта

#c# #unity3d #unityscript #unity5

#c# #unityscript #unity3d

Вопрос:

привет всем, я использую Unity 5.4.1f1 для создания простой игры, я хочу, чтобы мой код добавлял платформы, которые представляют собой часть улицы в конце первой платформы, без жесткого кодирования длины улицы, которая составляет 14 м

итак, я попробовал этот код:
я добавил в start :

 lastPos = platForm.transform.position;
size = platForm.transform.localScale.z;
  

и добавил вызываемый этот код в обновлении :

 Vector3 currentPos = lastPos;
  

currentPos.z =размер;
lastPos =currentPos;
Создать экземпляр (платформа, lastPos, Quaternion.identity);

но это не сработало, он всегда получает размер 1, даже если он равен 14, так что это выполнимо в Unity или я должен сделать это жестко?

введите описание изображения здесь

Комментарии:

1. Почему вы ожидаете, что size изменится, если вы никогда не изменяете значение scale?

2. @UnholySheep это всего лишь шаблон, который я хочу использовать в коде для других типов платформ с разными размерами

Ответ №1:

Вы можете использовать renderer.bounds

Например

 var size  = GetComponent<Renderer>().bounds.size;
  

Ответ №2:

Масштаб представляет собой множитель к размеру объекта. Таким образом, объект размером 10 м, но без масштаба, вернет коэффициент 1, если вы продублируете размер этой модели (20 м), масштаб будет равен 2.

Вы можете получить длину сетки через ее границы

mesh.bounds.size, этот вектор3 будет иметь длину для каждой оси.

https://docs.unity3d.com/ScriptReference/Mesh-bounds.html

Комментарии:

1. Я не видел, чтобы ваш объект был без коллайдера, вы можете использовать сетку с той же идеей, я редактирую свой первый пост.