Показать сообщение отдельно
Старый 29.03.2016, 11:11   #1
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Enabler.cs (хэлпер)

Маленький класс, помогающий включать/выключать объекты.

Обычно, компоненты объектов "достаются" в функции Start.
Однако, нельзя достать компонент, если объек выключен, не активен.

Когда на сцене много всего, то удобно отключать объекты, чтобы не мешали работать с другими частями.
Например, для менюшек - внутри канваса создаём несколько панелей, каждая из которых для своего экрана - начальный экран, меню, выбор уровня и прочее.
Если их не отключать, то всё наслаивается.
Если отключать, то перед стартом надо включать, чтобы получить компоненты.

Представленный ниже скрипт как раз помогает включать нужные объекты при старте.
Приоритет выполнения этого скрипта нужно поставить выше чем у прочих, чтобы все нужные объекты включились раньше своего метода Start.

public class Enabler MonoBehaviour {

    public 
GameObject[] EnableArrayDisableArray;


    
void Start () {
    
        if (
DisableArray != null) {
            foreach (var 
i in DisableArray) {
                
i.SetActive(false);
            }
        }

        if (
EnableArray != null) {
            foreach (var 
i in EnableArray) {
                
i.SetActive(true);
            }
        }

    }


(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (29.03.2016)