Смотреть на объекты
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 34 из 85.
transform.LookAt(point) поворачивает объект так, чтобы его передняя ось — синяя стрелка z — была направлена на позицию в мире. Объект поворачивается, но не перемещается. Этот прожектор установлен на башне в точке (0, 6, 0) и направлен на ворота в точке (4, 0, 10):
void Start()
{
transform.LookAt(new Vector3(4, 0, 10));
}Ворота находятся ниже прожектора, поэтому он наклоняется вниз, одновременно поворачиваясь: LookAt направляет объект прямо на указанную точку, в том числе вверх или вниз. После этого transform.forward указывает от прожектора к воротам.
При вызове в Start() LookAt наводится один раз. При вызове в Update() он наводится заново в каждом кадре, поэтому объект продолжает смотреть на точку, пока объект или точка перемещаются. Аргументом всегда является позиция: LookAt(Vector3.forward) наводит на точку мира (0, 0, 1) — место рядом с центром мира, где бы ни находился объект.
Задание
СреднеПоверните ровер в направлении его движения.
- Под комментарием в
Update()напишитеif (move != Vector3.zero), чтобы стоящий ровер сохранял направление. - Внутри этого условия вызовите
transform.LookAt(transform.position + move);.
Нажмите «Играть» и управляйте ровером: он повернёт переднюю часть в направлении движения. Затем нажмите «Проверить».
Попробуйте сами
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 3f;
void Update()
{
Vector3 move = Vector3.zero;
if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
move = move.normalized;
transform.position += move * speed * Time.deltaTime;
// Поверните ровер в сторону его движения
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света3Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт6Трансформации и иерархия
Родители и детиПоднять флагМасштабСмотреть на объектыДвигаться к точкеПовторение: Луна на орбитеПотренируйтесь самостоятельно: Песочница Unity