Skala
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 25 z 67.
transform.localScale mnoży rozmiar obiektu wzdłuż każdej z jego osi. Domyślnny sześcian ma 1 jednostkę długości każdego boku, więc sześcian o localScale (4, 1, 0.5) ma 4 jednostki szerokości, 1 jednostkę wysokości i pół jednostki głębokości. Aby uzyskać jednakowy rozmiar we wszystkich osiach, pomnóż przez Vector3.one, czyli (1, 1, 1). Ta bańka mydlana rośnie o 0.3 jednostki na sekundę, aż osiągnie 3 jednostki szerokości:
public float size = 1f;
void Update()
{
size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
transform.localScale = Vector3.one * size;
}Mathf.Min(a, b) zwraca mniejszą z dwóch liczb, więc size rośnie, aż osiągnie 3, a następnie pozostaje na tym poziomie.
Skalowanie odbywa się względem punktu obrotu obiektu, który w przypadku wbudowanych kształtów Unity znajduje się w środku. Sześcian o boku 1 jednostki, stojący na podłożu, ma środek na wysokości y = 0.5. Jeśli przeskalujesz go do wysokości 3 jednostek, będzie sięgał 1.5 jednostki w górę i 1.5 w dół od tego punktu, więc połowa sześcianu zapadnie się w podłoże. Aby stał na podłożu, jego środek musi znajdować się na połowie jego wysokości: y = 1.5.
Rozmiar obiektu potomnego jest mnożony przez rozmiar jego obiektu nadrzędnego: obiekt potomny o localScale (1, 1, 1), którego obiekt nadrzędny ma skalę 2, jest renderowany jako dwukrotnie większy. transform.lossyScale odczytuje ten końcowy rozmiar w świecie i jest tylko do odczytu; wartość, którą ustawiasz, to localScale.
Wyzwanie
ŚredniKostka lodu topnieje. Od początku gry kurczy się na każdej osi o melt (0.2) na sekundę, od rozmiaru 1 do 0.4, a potem pozostaje w tym rozmiarze.
Kurczenie wokół środka sprawiłoby, że kostka unosiłaby się w powietrzu, więc przez cały czas utrzymuj jej spód na ziemi (przy y = 0). Jej współrzędne x i z się nie zmieniają.
Naciśnij Play, aby zobaczyć, jak topnieje, a następnie Check.
Spróbuj swoich sił
using UnityEngine;
public class Melt : MonoBehaviour
{
public float melt = 0.2f;
void Update()
{
// Zmniejszaj rozmiar o melt na sekundę, aż do 0.4, utrzymując dolną krawędź na ziemi
}
}
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