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