В Unity 3d я создал экземпляр класса, который я написал под названием Timer.Update() не вызывается для динамически созданного экземпляра класса
Timer readyTimer = new Timer("Ready Timer");
Я просто создаю новый экземпляр и передаю тип таймера, которым я бы хотел, чтобы этот экземпляр был. Моя проблема в том, что, поскольку я создаю это динамически, функция Update() никогда не вызывается.
Есть ли способ динамически создать экземпляр класса, такого как этот, и все же позволить функциям MonoBehavior работать так, как они предназначены?
Класс *** должен быть MonoBehavior *** ... это так просто. – Fattie
Возможно, это ваша фундаментальная проблема: смутно, в Unity, они забыли добавить концепцию ** preload scene **. В 100% проектов Unity первое, что вы делаете, это добавить «Scene Zero», который загружается первым. Он содержит такие вещи, как AI, звуковые эффекты, выигрыш, управление играми - все «одноэлементные вещи», которые вы всегда играете в игре. (Очевидно, вы не можете использовать одиночные игры в игровом движке.) Конечно, все они отмечены 'DontDestroyOnLoad'. Необычное единство забыло включить эту концепцию (это Единство во всем), которая является самой простой, когда вы делаете игры. – Fattie
То, что вы тогда, вероятно, сделаете, просто добавляет тривиальный кусок синтаксического сахара, чтобы очень легко получить доступ к этим компонентам «из любого места». http://answers.unity3d.com/answers/1124859/view.html – Fattie