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.
Wyzwanie
ŚredniUstaw rover przodem w kierunku jazdy.
- Pod komentarzem w
Update()napiszif (move != Vector3.zero), aby stojący rover zachowywał kierunek, w którym jest zwrócony. - 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
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światła3Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPowtórka: winda6Przekształcenia i hierarchia
Rodzice i dzieciWciągnij flagęSkalowaniePatrz na obiektyPorusz się w kierunku punktuPodsumowanie: Księżyc na orbiciePoćwicz samodzielnie: Edytor online Unity