Menu
CoddyTech

Patrz na obiekty

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 34 z 85.

transform.LookAt(point) obraca obiekt tak, aby jego oś skierowana do przodu, niebieska strzałka z, wskazywała położenie w świecie. Obraca obiekt, ale go nie przesuwa. Reflektor znajduje się na wieży w punkcie (0, 6, 0) i jest skierowany na bramę w punkcie (4, 0, 10):

void Start()
{
    transform.LookAt(new Vector3(4, 0, 10));
}

Brama znajduje się niżej niż światło, więc reflektor pochyla się w dół, a także obraca: LookAt kieruje go prosto na punkt, również w górę lub w dół. Następnie transform.forward wskazuje od światła w stronę bramy.

Wywołane w Start(), LookAt ustawia kierunek tylko raz. Wywołane w Update(), ustawia go ponownie w każdej klatce, więc obiekt cały czas jest skierowany na punkt, gdy obiekt lub punkt się porusza. Argumentem zawsze jest położenie: LookAt(Vector3.forward) kieruje obiekt na punkt świata (0, 0, 1), miejsce obok środka świata, niezależnie od tego, gdzie znajduje się obiekt.

challenge icon

Wyzwanie

Średni

Ustaw rover przodem w kierunku jazdy.

  1. Pod komentarzem w Update() napisz if (move != Vector3.zero), aby stojący rover zachowywał kierunek, w którym jest zwrócony.
  2. Wewnątrz wywołaj transform.LookAt(transform.position + move);.

Naciśnij „Graj” i jedź: rover obraca przód w kierunku, w którym się porusza. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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;
        // Obróć łazik tak, aby był skierowany w kierunku jazdy
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity