Unity

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

Объяснение кода:

  1. Поля для объектов: Определяются три поля для объектов finish, kingBees и kingCoin, которые вы должны связать в редакторе Unity.
  2. Update(): В методе Update() проверяем, активен ли объект finish. Если он активен, запускаем корутину HandleFinish().
  3. HandleFinish(): Здесь используется WaitForSeconds(5f), чтобы ждать 5 секунд, затем скрывается объект finish и активируются объекты kingBees и kingCoin.

Примечание

  • Убедитесь, что в редакторе Unity вы указали ссылки на соответствующие игровые объекты в публичных полях finish, kingBees и kingCoin.
  • Также рекомендуется добавить логику, чтобы не запускать корутину повторно, если finish уже активирован. Чтобы это сделать, вы можете использовать булевую переменную для проверки состояния. Например, добавьте переменную private bool isHandlingFinish = false; и проверьте её перед запуском корутины.