Unity выполнить условие, если объект finish активирован, тогда через 5 секунд скрыть объект finish и показать объекты kingBees и kingCoin.
Для выполнения поставленной задачи в Unity, вам нужно написать сценарий на C#. Вы можете использовать функцию StartCoroutine
, чтобы создать таймер на 5 секунд. Вот пример кода, который выполняет ваши требования:
using UnityEngine;
public class GameManager : MonoBehaviour
{
public GameObject finish; // Объект Finish
public GameObject kingBees; // Объект KingBees
public GameObject kingCoin; // Объект KingCoin
private void Update()
{
// Проверяем, активизирован ли объект finish
if (finish.activeSelf)
{
// Если объект активен, запускаем корутину
StartCoroutine(HandleFinish());
}
}
private IEnumerator HandleFinish()
{
// Ждем 5 секунд
yield return new WaitForSeconds(5f);
// Скрываем объект finish
finish.SetActive(false);
// Показываем объекты kingBees и kingCoin
kingBees.SetActive(true);
kingCoin.SetActive(true);
}
}
Объяснение кода:
- Поля для объектов: Определяются три поля для объектов
finish
,kingBees
иkingCoin
, которые вы должны связать в редакторе Unity. - Update(): В методе Update() проверяем, активен ли объект
finish
. Если он активен, запускаем корутинуHandleFinish()
. - HandleFinish(): Здесь используется
WaitForSeconds(5f)
, чтобы ждать 5 секунд, затем скрывается объектfinish
и активируются объектыkingBees
иkingCoin
.
Примечание
- Убедитесь, что в редакторе Unity вы указали ссылки на соответствующие игровые объекты в публичных полях
finish
,kingBees
иkingCoin
. - Также рекомендуется добавить логику, чтобы не запускать корутину повторно, если
finish
уже активирован. Чтобы это сделать, вы можете использовать булевую переменную для проверки состояния. Например, добавьте переменнуюprivate bool isHandlingFinish = false;
и проверьте её перед запуском корутины.