До сих пор я думал, что функции в monobehaviour
будут выполняться в следующем порядке:
OnEnable> Пуск> Обновление> OnDisable
Проблема в том, что я думал, что этот порядок будет абсолютный , что означает, что до тех пор, пока функция не будет полностью завершена, не будет возможности выполнить следующую.
- Итак, первый вопрос: это правда?Будет ли
update
НЕ выполняться, пока не закончится start
?
Тогда у меня возникнет проблема с синхронизацией между различными monobehaviour
классами.
У меня есть класс, который создает некоторые объекты (Меню в основном) в его start
функции.Тогда в другом классе у меня есть подобный код, но он также зависит от объекта, созданного первым классом, который уже существует.Я получаю сообщение об ошибке, потому что объект еще не найден.
NullReferenceException: ссылка на объект не установлена на экземпляр объекта ShopHandler.Start () (в Assets / Scripts / Shops / ShopHandler.cs: 60)
Так что теперь я застрял с этим.Поэтому мой второй вопрос будет
Как мне
синхронизировать мои разные классы, когда они зависят от других, подобных этому ?
Наконец, вопрос, смешанный с этими двумя, также должен быть задан:
Будет ли функция
update
выполняться в любом из этих классов, пока они как-то "ждут" своей части инициализации, будь то функция
start
, функция
OnEnable
или что-то еще?
Конечно, функция update
полагается на объекты, которые уже инициализируются, и это может привести к новым проблемам.
Заранее спасибо