Допусти , есть у меня несколько объектов. У всех сначала вызовется Awake, потов у всех OnEnable и т.д? Я правильно понимаю?
Да
https://docs.unity3d.com/Manual/ExecutionOrder.html
Странно) У меня OnEnable вызывается первее, чем Start
https://docs.unity3d.com/Manual/ExecutionOrder.html - вот так
Я читал мануал. Но как вызываются события при создании объектов динамически не понял.
Там же картинка есть, как происходит LifeCycle монобеха
Да как он у одного монобеха проходит все понятно. А как проходит у нескольких в связке? Я выше вопрос задавал
These functions get called when a scene starts (once for each object in the scene). - там же в документации после картинки
Ну смотри. В скрипте объекта который на сцене пусть в OnEnable мы динамически создаём 2 объекта. В объекте на сцене уже сработали Awake и OnEnable. Что у какого объекта будет срабатывать дальше, в какой очередности? Сначала в динамических сработают Awake и OnEnable?
Сначала отработают все Awake, затем все OnEnable, если объекты включены, порядок не гарантируется, если не настроен руками для спец объектов, затем у всех Start
Значит в моем примере у объекта на сцене событие Start откладывается, пока не сработают Awake и OnEnable у всех им созданных?
стоп, ты создаешь в цикле 2 объекта последовательно? То в момент инстанциирования у него сработает Awake, если он включен OnEnable, потом отработает Start один раз перед Update. У второго объекта произойдет тоже самое при его инстанцировании
Теперь я совсем запутался. Да. Объекты создаются в цикле. Но создаются они в OnEnable объекта сцены. Т.е. Awake у объекта на сцене уже отработал. Сейчас отрабатывает OnEnable. У какого объекта какое событие сработает дальше? У динамического вызовется Awake и OnEnable, а далее у обоих Start?
Интерес, конечно, это хорошо, но работу на таких тонкостях редко завязывают, даже если поймёшь и запомнишь оно тебе не пригодится. Если так интересно запусти и глянь, не сложно же
Да не в интересе дело. На практике нужно.
Ок. Раскидаю дебаги тогда и гляну что там к чему.
Обсуждают сегодня