Menu
CoddyTech

Посмотри на объекты

Часть раздела Основы скриптинга в 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) — место рядом с центром мира, где бы ни находился объект.

challenge icon

Задание

Средне

Ровер уже ездит с помощью стрелок вдоль осей 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;
        // Поверните ровер в направлении его движения
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы скриптинга в Unity