Strefy śmierci
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 19 z 71.
Strefa śmierci to obszar wyzwalający, do którego gracz nie może dotrzeć: lawa, kolce lub pusta przestrzeń pod poziomem. Wejście do niej odsyła gracza do punktu odrodzenia. W tym przypadku robi to skrypt samej lawy, a punkt odrodzenia znajduje się w polu Transform ustawionym w Inspectorze:
public Transform spawnPoint;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
other.transform.position = spawnPoint.position;
other.attachedRigidbody.linearVelocity = Vector3.zero;
}
}other.attachedRigidbody to Rigidbody, do którego należy wchodzący collider. Ustawienie transform.position teleportuje gracza, czego wymaga odrodzenie. Rigidbody zachowuje jednak swoją prędkość podczas skoku: gracz, który spadł z prędkością 10 jednostek na sekundę, dotrze do punktu odrodzenia i nadal będzie spadać z prędkością 10, a ten, który wbiegł w lawę, będzie biegł dalej i wpadnie w nią prosto z powrotem. Ustawienie linearVelocity na Vector3.zero sprawia, że gracz pojawia się na miejscu nieruchomo. Sprawdzenie tagu sprawia, że wszystko inne, co wpadnie do lawy, pozostaje tam, gdzie jest.
Wyzwanie
ŁatwyDodaj odradzanie się gracza. Ten skrypt znajduje się na graczu, więc zmienia położenie transform i body, a nie other.
- W
Start()ustaw poleVector3 respawnnatransform.position. - W
OnTriggerEnter(Collider other), gdyother.CompareTag("Checkpoint"), ustawrespawn = transform.position;. - Gdy
other.CompareTag("KillZone"), ustawtransform.position = respawn;orazbody.linearVelocity = Vector3.zero;.
Naciśnij „Graj” i zejdź z mostu. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Player : MonoBehaviour
{
public float force = 12f;
Rigidbody body;
Vector3 input;
// respawn: miejsce, w którym gracz pojawia się ponownie
void Start()
{
body = GetComponent<Rigidbody>();
}
void Update()
{
input = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
}
void FixedUpdate()
{
body.AddForce(input * force);
}
// Checkpoint: zapamiętaj, gdzie znajduje się gracz. KillZone: wróć w to miejsce i zatrzymaj się.
}
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