Przestrzeń lokalna i globalna
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 19 z 67.
Obiekt ma własne kierunki, podobnie jak świat. transform.forward wskazuje kierunek, w którym zwrócony jest nos 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 oznaczają odpowiednio własne kierunki w prawo i w górę obiektu. Obróć obiekt, a obrócą się wraz z nim. Ten papierowy samolot jest obrócony w scenie o 90 stopni wokół osi y, więc leci wzdłuż osi x świata, zgodnie z kierunkiem, 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 swój wektor w lokalnej przestrzeni obiektu: w niej Vector3.forward oznacza kierunek do przodu obiektu. Przekaż Space.World jako drugi argument, a zamiast tego 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ę jest zwrócony samolot.
transform.Rotate również obraca obiekt wokół jego własnych osi. Patrząc z góry, dodatni kąt wokół osi y obraca obiekt stojący pionowo w prawo, a ujemny — w lewo; jego transform.forward obraca się razem z nim.
Wyzwanie
ŁatwyDodaj czołgowi sterowanie: strzałka w prawo obraca go w prawo, a strzałka w lewo — w lewo, wokół jego osi y z prędkością turn stopni na sekundę. Strzałka w górę napędza go do przodu, w kierunku, w którym jest skierowany, z prędkością speed jednostek na sekundę. Sam obrót nie powoduje jego ruchu.
Naciśnij Play, obracaj się i jedź, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Strzałki w prawo i w lewo: obracają wokół osi y. Strzałka w górę: porusza czołg w kierunku, w którym jest zwrócony.
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Twój pierwszy skrypt
Witaj, UnityUmieść sześcianPoruszaj się w każdej klatceObracaj się co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian4Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 jest strukturąPodsumowanie: pilot drona2Inspektor
Pola inspektoraSerializeFieldLiczby zmiennoprzecinkowe i MathfAtrybuty inspektoraPodsumowanie: Winda5Transformacje i hierarchia
Rodzice i dzieciSkalaPatrz na obiektyPoruszanie się w kierunku punktuPodsumowanie: Księżyc krążący po orbicie3Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski o nazwachPrzyciski myszyPowtórka: naładowany skok6Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePodsumowanie: włącznik światła