Przestrzeń lokalna i globalna
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 26 z 85.
Obiekt ma własne kierunki, a także kierunki świata. transform.forward wskazuje kierunek, w którym zwrócony jest przód obiektu (niebieska strzałka w widoku Scene w Unity), wyrażony jako wektor świata o długości jednej jednostki; transform.right i transform.up wskazują jego własne kierunki w prawo i w górę. Obróć obiekt, a te kierunki obrócą się razem z nim. Ten papierowy samolot jest obrócony w scenie o 90 stopni wokół osi y, więc leci wzdłuż osi x świata, w kierunku, w którym jest zwrócony:
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) robi to samo, ponieważ Translate interpretuje wektor w układzie współrzędnych obiektu: w tym układzie Vector3.forward oznacza kierunek, w którym zwrócony jest przód obiektu. Przekaż Space.World jako drugi argument, a zostaną użyte osie świata, więc transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) przesuwa obiekt wzdłuż osi z świata, niezależnie od tego, w którą stronę zwrócony jest samolot.
transform.Rotate również obraca obiekt wokół jego własnych osi. Patrząc z góry, dodatni kąt wokół osi y obraca pionowo ustawiony obiekt w prawo, a ujemny — w lewo; jego transform.forward obraca się razem z nim.
Wyzwanie
ŁatwyZapewnij czołgowi sterowanie typowe dla czołgu: obracanie się w miejscu i jazdę w kierunku, w którym jest zwrócony.
- W
Update(), gdy trzymasz strzałkę w prawo, użyjtransform.Rotate(0, turn * Time.deltaTime, 0);, a dla strzałki w lewo użyj-turn. - Gdy trzymasz strzałkę w górę, użyj
transform.Translate(Vector3.forward * speed * Time.deltaTime);.
Naciśnij „Graj”, obracaj się i jedź: czołg porusza się w kierunku, w którym jest zwrócony. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Strzałki w prawo/lewo: obracają wokół osi y. Strzałka w górę: jedzie w kierunku, w którym zwrócony jest czołg.
}
}
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łaPoćwicz samodzielnie: Edytor online Unity