Tworzenie obiektów według timera
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 63 z 85.
Spawner, który co kilka sekund tworzy coś, potrzebuje timera. Time.deltaTime to czas, jaki trwała ostatnia klatka, więc dodawanie go do pola przy każdym wywołaniu Update() daje liczbę sekund, które upłynęły. Gdy suma osiągnie interwał, utwórz obiekt i odejmij interwał od sumy.
Ta fontanna wyrzuca kroplę wody co pół sekundy:
public GameObject dropPrefab;
public float interval = 0.5f;
float timer;
void Update()
{
timer += Time.deltaTime;
if (timer >= interval)
{
Instantiate(dropPrefab, transform.position, Quaternion.identity);
timer -= interval;
}
}timer -= interval zachowuje resztę: jeśli klatka zakończyła się po 0.51 sekundy, odliczanie kolejnej połowy sekundy zaczyna się od 0.01, a krople pojawiają się w równym rytmie. timer = 0 odrzuciłoby tę resztę, więc każda kropla pojawiałaby się nieco później, a opóźnienie narastałoby podczas długiej gry. timer jest prywatny, ponieważ nie trzeba go ustawiać w Inspectorze.
Wyzwanie
ŚredniUpuszczaj pudełko co interval sekund (2 w Inspectorze).
- Dodaj pola
float timer;iint count;. WUpdate()dodajTime.deltaTimedotimer. - Gdy
timer >= interval, wywołajInstantiate(boxPrefab, transform.position, Quaternion.identity);i odejmijintervalodtimer. - Następnie zwiększ
counto 1 i wypisz w logu"Box " + count.
Naciśnij „Graj”: pudełko spada co 2 sekundy, a Console zlicza Box 1, Box 2. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class BoxDropper : MonoBehaviour
{
public GameObject boxPrefab;
public float interval = 1f;
void Update()
{
// Co interval sekund: upuść pudełko i zapisz w logu "Box 1", "Box 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ła11Prefaby i tworzenie obiektów
Prefaby i InstantiateTworzenie obiektów według timeraTworzenie obiektów w siatceListy obiektówCofnij najnowszyNiszczenieLosowe tworzenie obiektówPowtórka: fajerwerkiPoćwicz samodzielnie: Edytor online Unity