Монеты возвращаются
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 30 из 63.
Задание
СреднеСобранная монета возвращается через 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);
}
}
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Погоня за монетами
Катящийся мячМонеты для сбора