Научиться управлять позицией, поворотом (Euler и Quaternion), масштабом и иерархией объектов через инспектор и скрипты в Unity.
Создайте новую 3D-сцену. На ней будут:
- Платформа (Cube)
- Красный куб (ChildCube)
- Синий куб (EnemyCube)
- Пустой родительский объект (ParentHolder)
- Создайте
ParentHolder(Create Empty). - Сделайте
ChildCube(красный куб) дочерним объектомParentHolder(перетащите в иерархии). - Установите локальную позицию
ChildCubeотносительноParentHolder:(1, 0, 0). - Переместите
ParentHolderв(3, 2, 0). Где окажетсяChildCube? (Ответ: на позиции(4, 2, 0)в мировых координатах).
- Установите
EnemyCube(синий куб) в позицию(0, 1, 5). - Поверните его по оси
Yна 45° через инспектор (Euler). - Напишите короткий скрипт
RotateEnemy, который в методеUpdate()каждую секунду увеличиваетtransform.eulerAngles.yна30°. Прикрепите кEnemyCube.
- Создайте пустой объект
Targetв позиции(2, 1, 0). - Напишите скрипт
FaceTargetдляChildCube: используйтеQuaternion.LookRotation, чтобы красный куб всегда смотрел в сторонуTarget. Не используйте Euler. - Проверьте: перемещайте
Targetмышью в Scene View —ChildCubeдолжен поворачиваться мгновенно.
- Установите масштаб
ParentHolderв(2, 1, 1). - Выведите в консоль (
Debug.Log) глобальный масштаб (transform.lossyScale) дляChildCube. Объясните, почему он не(1,1,1). - Измените локальный масштаб
ChildCubeна(0.5, 1, 1). Посчитайте итоговый размер по X вручную.
- Напишите скрипт
Orbit, который вращаетChildCubeвокругParentHolderпо кругу, используяtransform.RotateAround. Параметры: скорость 30° в секунду, ось Y.
- Скрипты
RotateEnemy,FaceTarget,Orbit(если делали). - Значения из консоли (п. 4) и ответ на вопрос про
lossyScale.