Monety wracają
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 30 z 63.
Wyzwanie
ŚredniZebrana moneta pojawia się ponownie po respawnDelay sekundach, więc zawsze jest za czym gonić. To oczekiwanie w trakcie życia jednej monety: korutyna. Zachowaj wszystko z wcześniejszych kroków i zmień Coin:
- Dodaj
public float respawnDelay = 3f;. - Nieaktywowany obiekt GameObject nie uruchamia korutyn, więc
SetActive(false)zatrzymałoby korutynę monety, zanim zdążyłaby przywrócić monetę. Ukryj monetę w inny sposób: wyłącz jejRenderer, aby nie była rysowana, oraz jejCollider, aby nie można było jej ponownie zebrać. - Po zebraniu uruchom korutynę, która ukrywa monetę, czeka
respawnDelaysekund, a następnie ponownie włącza oba komponenty. Wynik jest dodawany tak jak wcześniej.
Naciśnij Play, zbierz monetę i obserwuj, jak wraca, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
public class Coin : MonoBehaviour
{
public int value = 1;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
other.GetComponent<Ball>().AddScore(value);
gameObject.SetActive(false);
}
}
}
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 mur5Projekt: Gorączka monet
Tocząca się piłkaMonety do zebrania