Rodzice i dzieci
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 24 z 67.
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 podąży za nim — bez kodu w obiektach potomnych.
Unity zapisuje położenie dziecka względem rodzica. transform.localPosition to to przesunięcie, mierzone 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 znajduje się koń:
void Start()
{
transform.localPosition = new Vector3(0, 1, -0.5f);
}Gdy koń znajduje się w punkcie (4, 0.5, 2), 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. Przesunięcie jest mierzone wzdłuż własnych osi rodzica, więc gdy rodzic się obraca lub jest skalowany, przesunięcie również się obraca i skaluje. W przypadku obiektu bez rodzica localPosition i position są takie same.
Wyzwanie
ŚredniFlaga jest obiektem podrzędnym Statku, a statek nie znajduje się w środku świata. Wartość Start() flagi oznacza ustawienie jej u stóp masztu, 0.6 w prawo i 1 w górę względem statku, ale te liczby są przypisywane do position, więc flaga trafia z dala od statku.
- Popraw
Start(), aby flaga zaczynała u stóp masztu. - Gdy strzałka w górę jest wciśnięta, wciągaj flagę na maszt: wspina się z prędkością
climbjednostek na sekundę, aż jej wysokość względem statku osiągnie 4, czyli szczyt masztu, i zatrzymuje się tam.
Naciśnij Play, przytrzymaj strzałkę w górę, a następnie Check.
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 przytrzymana, wspinaj się, aż wysokość względem Ship wyniesie 4
}
}
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ścian2Inspektor
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