Łapacz
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 50 z 85.
W tym rozdziale, w trakcie kolejnych lekcji, zbudujesz małą grę „Catch the Star”, dodając po jednej funkcji na lekcję: gwiazda spada, a ty przesuwasz pod nią łapacz w lewo i w prawo, każde złapanie daje punkty i sprawia, że następna gwiazda spada szybciej, a trzy nieudane próby kończą grę. Wszystko znajduje się w jednym skrypcie, Catcher, przypisanym do łapacza. Pierwszą funkcją jest ruch: łapacz przesuwa się za pomocą klawiszy strzałek i nigdy nie opuszcza podłogi.
Za utrzymanie liczby w określonych granicach odpowiada Mathf.Clamp(value, min, max). Zwraca min, gdy wartość jest mniejsza niż min, max, gdy jest większa niż max, a w pozostałych przypadkach samą wartość. Ta kamera podąża za graczem w górę wieży, ale jej wysokość pozostaje w przedziale od 2 do 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp zwraca nową liczbę i sam z siebie niczego nie zmienia, więc przypisz wynik. Zastosuj Clamp po wszystkich zmianach w danej klatce, a przed ponownym przypisaniem pozycji, a żadna klatka nie pokaże obiektu poza wyznaczonymi granicami.
Wyzwanie
ŚredniNadaj łapaczowi, niebieskiemu paskowi, ruch.
- W
Update()skopiujtransform.position.xdofloat x, a następnie dodawaj lub odejmujspeed * Time.deltaTimew zależności od przytrzymanej strzałki. - Utrzymuj łapacz o szerokości 2 jednostek na podłodze (x od -5 do 5):
x = Mathf.Clamp(x, -4f, 4f);. - Zapisz
xz powrotem wtransform.position, zachowując y i z.
Naciśnij Graj i przytrzymaj strzałki: łapacz zatrzymuje się na krawędziach. Następnie naciśnij Sprawdź.
Spróbuj swoich sił
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Strzałki: przesuwaj się wzdłuż osi x z prędkością speed jednostek na sekundę.
// Utrzymuj cały chwytak na podłodze (x od -5 do 5, chwytak ma szerokość 2).
}
}
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