Есть GameObject. В нем 2 компонента: MainLevelSetting и RespawnController.
Классе MainLevelSetting:
void Start () {
Debug.Log( "Start MainLevelSetting" );
GetComponent
public void RespawnHero(){
Debug.Log( "RespawnHero" );
}
Поле запуска, в консоле отоброжается:
"Start MainLevelSetting"
"RespawnHero"
"Start RespawnController"
То есть сначала вызывается метод класса, а потом только метод инициализируется!
Где ошибка и как исправить?
Ответ
Нашел статью про порядок событий http://habrahabr.ru/post/147315/ и понял что я заблуждался! Start вызывается не при инициализации класс( я думал что это аналог конструктора из С++ ), а До первого обновления кадров Start: вызывается перед прорисовкой первого фрейма, только если сценарий определён. А (может не совсем правильно выражусь) аналог является функция: Первая загрузка сцены Эти функции вызываются, когда сцена стартует (по одному разу для каждого объекта в кадре). Awake: Эта функция всегда вызывается до начала любых функций, а также сразу после инициализации префаба. То есть то что нужно!! Но для моего случая больше подошло переделать методы. Так что думаю ответ на вопрос найден! =)
Комментариев нет:
Отправить комментарий