Посмотри на объекты
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 26 из 67.
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) — место рядом с центром мира, где бы ни находился объект.
Задание
СреднеРовер уже ездит с помощью стрелок вдоль осей x и z мира. Сделай так, чтобы он поворачивался в направлении движения: пока он движется, его передняя часть (его продольная ось) направлена в сторону движения, включая диагонали. Если ни одна клавиша не нажата, он стоит на месте и продолжает смотреть в последнем направлении движения.
Нажми Play, покатайся, затем нажми Check.
Попробуйте сами
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Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света