Wywoływanie
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 22 z 71.
Invoke("Explode", 3f) wywołuje własną metodę skryptu Explode jeden raz, za 3 sekundy, a kod znajdujący się za nią wykonuje się od razu. Unity wyszukuje metodę na podstawie jej nazwy podanej jako ciąg znaków, a metoda nie przyjmuje żadnych parametrów. Ta bomba wybucha 3 sekundy po rozpoczęciu gry:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Ponieważ nazwa jest ciągiem znaków, kompilator nie może jej sprawdzić. Invoke("Explod", 3f) kompiluje się, a 3 sekundy później Unity wyświetla w dzienniku komunikat Trying to Invoke method: Bomb.Explod couldn't be called. zamiast doprowadzić do wybuchu. C#-owe nameof rozwiązuje ten problem: nameof(Explode) to ciąg znaków "Explode", utworzony przez kompilator na podstawie sprawdzonej przez niego nazwy, więc literówka wewnątrz niego powoduje błąd kompilacji widoczny przed uruchomieniem gry. Napisz Invoke(nameof(Explode), 3f);.
Wyzwanie
ŁatwySpraw, aby platforma rozpadła się chwilę po tym, jak gracz na nią wyląduje.
- W
OnCollisionEnter, gdycollision.gameObject.CompareTag("Player"), wywołajInvoke(nameof(Fall), delay);. - Dodaj
void Fall(): ustawbody.isKinematic = false;i zalogujCrumble!.
Naciśnij „Graj” i wejdź na platformę: sekundę później opadnie. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Crumble : MonoBehaviour
{
public float delay = 1f;
Rigidbody body;
void Start()
{
body = GetComponent<Rigidbody>();
}
void OnCollisionEnter(Collision collision)
{
// Gdy gracz wyląduje: spraw, by platforma spadła po delay sekundach
}
// Fall(): włącz fizykę platformy i wypisz Crumble! w logu
}
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa4Korutyny
WywoływanieInvokeRepeating i CancelInvokeTwoja pierwsza korutynaPętle w korutynachZatrzymywanie korutynPodsumowanie: odliczanie10Projekt: Ucieczka z areny
ArenaŁowcy2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Wyścig po monety
Tocząca się piłkaZbieranie monet3Wyzwalacze
Kolizje wyzwalająceOnTriggerEnterPrzedmioty do zebraniaSkrzynie zatrzymują resztęStrefy śmierciWejście i wyjściePodsumowanie: klucz i drzwiPoćwicz samodzielnie: Edytor online Unity