Rodzice i dzieci
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 31 z 85.
W Hierarchy obiekt przeciągnięty na inny staje się jego dzieckiem i jest wyświetlany z wcięciem pod swoim rodzicem. Dziecko porusza się, obraca i skaluje razem z rodzicem: przesuń rodzica, a każde dziecko pójdzie za nim — bez żadnego kodu przypisanego do dzieci.
Unity zapisuje położenie dziecka względem jego rodzica. transform.localPosition to ten offset, mierzony od rodzica; transform.position to położenie w świecie. Ten Jeździec jest dzieckiem Konia, a jego skrypt umieszcza go 1 jednostkę nad środkiem konia i pół jednostki z tyłu, niezależnie od tego, gdzie stoi koń:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Gdy koń znajduje się w punkcie (4, 0.5, 2), wartość position jeźdźca wynosi (4, 1.5, 1.5), a jego localPosition pozostaje równe (0, 1, -0.5). Gdy koń idzie dalej, position się zmienia, a localPosition nie. Offset jest mierzony wzdłuż własnych osi rodzica, więc gdy rodzic się obraca lub skaluje, offset również się obraca i skaluje. Dla obiektu bez rodzica localPosition i position są takie same.
Wyzwanie
ŚredniUmieść flagę u podnóża masztu, mierząc położenie względem statku.
- W
Start()liczby (0.6, 1, 0) są mierzone względem Ship, obiektu nadrzędnego flagi. - W tym wierszu zmień
transform.positionnatransform.localPosition.
Naciśnij „Graj”: flaga znajduje się u podnóża masztu, na statku. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
// Podstawa masztu: 0.6 w prawo i 1 w górę względem Ship
transform.position = new Vector3(0.6f, 1, 0);
}
void Update()
{
// Gdy strzałka w górę jest wciśnięta, wspinaj się, aż wysokość względem Ship wyniesie 4
}
}
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