Menu
CoddyTech

Монеты возвращаются

Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 30 из 63.

challenge icon

Задание

Средне

Собранная монета возвращается через respawnDelay секунд, так что всегда есть за чем гоняться. Это ожидание в течение жизни одной монеты: сопрограмма. Сохрани всё из предыдущих шагов и измени Coin:

  • Добавь public float respawnDelay = 3f;.
  • Неактивный GameObject не запускает сопрограммы, поэтому SetActive(false) остановит сопрограмму монеты, прежде чем она успеет вернуть монету. Спрячь монету другим способом: отключи её Renderer, чтобы она не отображалась, и её Collider, чтобы её нельзя было собрать снова.
  • При сборе запусти сопрограмму, которая скроет монету, подождёт respawnDelay секунд, а затем снова включит оба компонента. Очки начисляются, как и прежде.

Нажми Play, собери монету и посмотри, как она возвращается, затем нажми Check.

Попробуйте сами

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);
        }
    }
}

Все уроки раздела Физика и игровой процесс