Wywoływanie
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 21 z 63.
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 znajduje 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 zapisuje w logu Trying to Invoke method: Bomb.Explod couldn't be called. zamiast doprowadzić do wybuchu. C# oferuje nameof, które 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 w nim powoduje błąd kompilacji widoczny przed uruchomieniem gry. Napisz Invoke(nameof(Explode), 3f);.
Wyzwanie
ŁatwyPlatforma między dwiema półkami jest rozpadająca się. Jej Rigidbody jest kinematyczny, więc wisi w powietrzu. Napisz jej skrypt Crumble:
- Gdy gracz na niej wyląduje, odczekuje
delaysekund (1 w Inspectorze), a następnie spada. - Spadanie obsługuje metoda o nazwie
Fall: włącza fizykę platformy (isKinematic = false) i zapisuje w loguCrumble!. - Zanim gracz jej dotknie, platforma pozostaje na swoim miejscu.
Użyj nameof dla nazwy metody. Naciśnij Play i wejdź na platformę, używając strzałek, a następnie naciśnij Check.
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 zapisz Crumble! w logu
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
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 startowa2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur