Unity

Unity выполнить условие, если объект finish активирован, тогда через 5 секунд скрыть объект finish и показать объекты kingBees и kingCoin без использования корутины.

В Unity, если вам нужно выполнить какое-либо условие через определенный промежуток времени, но без использования корутин, вы можете воспользоваться методом Update(), чтобы отслеживать время. Вот пример кода, который выполняет ваши требования:

using UnityEngine;

public class GameController : MonoBehaviour
{
    public GameObject finish; // Объект finish
    public GameObject kingBees; // Объект kingBees
    public GameObject kingCoin; // Объект kingCoin

    private float timer; // Таймер для отслеживания времени
    private bool isFinishActive; // Флаг, чтобы проверить, активен ли объект finish

    void Update()
    {
        // Проверяем, активирован ли объект finish
        if (finish.activeSelf)
        {
            isFinishActive = true; // Устанавливаем флаг, если finish активен
            timer += Time.deltaTime; // Увеличиваем таймер на время, прошедшее с последнего кадра

            // Проверяем, прошло ли 5 секунд
            if (timer >= 5f)
            {
                HideFinishAndShowOthers(); // Вызываем метод для скрытия и показа объектов
            }
        }
        else
        {
            // Если объект finish не активен, сбрасываем таймер и флаг
            timer = 0f;
            isFinishActive = false;
        }
    }

    void HideFinishAndShowOthers()
    {
        finish.SetActive(false); // Скрываем объект finish
        kingBees.SetActive(true); // Показываем объект kingBees
        kingCoin.SetActive(true); // Показываем объект kingCoin

        // Сбрасываем таймер и флаг
        timer = 0f; 
        isFinishActive = false;
    }
}

В этом коде мы используем метод Update() для отслеживания времени, когда объект finish активен. Если он активен, мы увеличиваем таймер. Как только таймер достигает 5 секунд, мы вызываем метод, который скрывает объект finish и показывает объекты kingBees и kingCoin. Если объект finish не активен, мы сбрасываем таймер.