Menu
CoddyTech

Monety wracają

Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 30 z 63.

challenge icon

Wyzwanie

Średni

Zebrana 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 jej Renderer, aby nie była rysowana, oraz jej Collider, aby nie można było jej ponownie zebrać.
  • Po zebraniu uruchom korutynę, która ukrywa monetę, czeka respawnDelay sekund, 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