Wejście i wyjście
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 20 z 71.
Wyzwalacz wysyła jeszcze dwie wiadomości. OnTriggerExit(Collider other) uruchamia się raz, podczas kroku fizyki, w którym nakładanie się kończy, niezależnie od tego, jak do tego dochodzi. OnTriggerStay(Collider other) uruchamia się podczas każdego kroku fizyki, dopóki nakładanie się trwa, domyślnie 50 razy na sekundę, tak jak FixedUpdate(). Wszystkie trzy przyjmują ten sam Collider.
Ten prąd wznoszący unosi wszystko, co w nim pływa, i informuje, kiedy to coś go opuszcza:
public float lift = 15f;
void OnTriggerStay(Collider other)
{
other.attachedRigidbody.AddForce(Vector3.up * lift);
}
void OnTriggerExit(Collider other)
{
Debug.Log(other.name + " left the updraft");
}Siła należy do kroku fizyki, dlatego pasuje tu OnTriggerStay: pchnięcie jest przykładane raz na krok tak długo, jak piłka znajduje się wewnątrz, i ustaje w chwili, gdy ją opuszcza. Prąd wznoszący nie ma komponentu Rigidbody, więc każdy obiekt, który do niego wpada, musi go mieć, a attachedRigidbody nigdy nie ma tu wartości null. Aby zastosować siłę w przeliczeniu na sekundę wewnątrz OnTriggerStay, pomnóż ją przez Time.deltaTime, które podczas kroku fizyki ma wartość równą długości tego kroku, czyli 0.02. Każde wejście powoduje jedno wywołanie OnTriggerEnter, a później jedno OnTriggerExit dla tego samego komponentu Collider.
Wyzwanie
ŁatwyZapal lampę, gdy cokolwiek znajduje się w strefie załadunku.
- Dodaj pole
int inBay;. WStart()ustawlamp.enabled = false;. - W
OnTriggerEnterzwiększinBayo 1 i ustawlamp.enabled = true;. - W
OnTriggerExitzmniejszinBayo 1 i wyłącz lampę tylko wtedy, gdy wartość wynosi 0.
Naciśnij „Graj” i wpychaj skrzynie do środka oraz wyciągaj je: lampa pozostaje włączona, dopóki strefa załadunku nie będzie pusta. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class LoadingBay : MonoBehaviour
{
public Light lamp;
// Lampa świeci, gdy w zatoce coś się znajduje, a gaśnie, gdy zatoka jest pusta
}
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