/// <summary>
        /// Переодическое открытие закрытых окон (появление пожара)
        /// </summary>
        private IEnumerator OpenWindows()
        {
            // Пока в пуле есть доступные окна и активен игровой режим
            while (PoolsManager.QuantityObjects(ListingPools.Pools.Windows.ToString()) > 0 && LevelManager.GameMode == LevelManager.GameModes.Play)
            {
                var seconds = Random.Range(5, 12);
                yield return(new WaitForSeconds(seconds));

                // Определяем номер случайного окна (из всех окон в пуле)
                var number = Random.Range(0, PoolsManager.QuantityObjects(gameObject.name));

                // Получаем объект из пула и получаем его компонент
                var window = PoolsManager.GetObjectFromPool(ListingPools.Pools.Windows.ToString(), number).GetComponent <Window>();
                // Активируем объект
                window.ActivateObject();
            }
        }
Beispiel #2
0
        /// <summary>
        /// Получение персонажа из пула объектов
        /// </summary>
        public void ShowVictims()
        {
            // Если в указанном пуле есть персонажи
            if (PoolsManager.QuantityObjects(_victims.ToString()) > 0)
            {
                Twinkle = false;

                //Получаем объект персонажа из пула и получаем его компонент
                var victim = PoolsManager.GetObjectFromPool(_victims.ToString()).GetComponent <Victims>();

                // Перемещаем персонажа в текущее окно (с указанным смещением)
                victim.transform.position = transform.position + new Vector3(0, victim.Offset, 0);

                // Записываем персонажу его окно
                victim.Window = this;

                // Активируем объект
                victim.ActivateObject();
            }
        }
        private void Start()
        {
            // Определяем количество окон с пожаром при старте
            var amount = Random.Range(2, _maximum + 1);

            for (int i = 0; i < amount; i++)
            {
                // Определяем номер случайного окна (из всех окон в пуле)
                var number = Random.Range(0, PoolsManager.QuantityObjects(ListingPools.Pools.Windows.ToString()));
                // Получаем объект из пула и получаем его компонент
                var window = PoolsManager.GetObjectFromPool(ListingPools.Pools.Windows.ToString(), number).GetComponent <Window>();

                // Открываем данное окно
                window.OpenWindow = true;
                // Активируем объект
                window.ActivateObject();
            }

            // Запускаем открытие других окон
            _ = StartCoroutine(OpenWindows());

            // Запускаем появление жителей в окнах
            _ = StartCoroutine(CharacterJumping());
        }