Страница 1 из 1

Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 12 авг 2017, 15:26
EagleOwle
Приветствую.
Возникла такая праблема.
Хочу добавлять компоненты NetworkTransformChild через скрипт, но он, сразу отрабатывает метод Awake() и выдает ошибку на пустое поле Target.
Как можно назначить ссылку поду Target до выполнения метода Awake()?

Синтаксис:
Используется csharp
private void Awake()
    {
        NetworkTransformChild transformChild = gameObject.AddComponent<NetworkTransformChild>();
        transformChild.target = transform.GetChild(0);
    }
 

Re: Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 12 авг 2017, 16:31
lawsonilka
Перенести работу в метод Start

Re: Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 12 авг 2017, 16:51
EagleOwle
Не помогает. перепробовал всякие варианты, ошибка все равно.

Re: Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 13 авг 2017, 09:39
EagleOwle
По прежнему актуально.
Ничего не помогает.
Уже пробовал выставлять приоритет скрипта в Script Execution Order, он там я не могу выставить класс NetworkTransformChild. Только свой скрипт.
И в Awake и в Start пробовал...
Ошибка NullReferenceException: Object reference not set to an instance of an object остается.

Может у кого есть идеи как иначе реализовать задачу.
Суть в том, что у меня есть персонаж и на нем, в процессе игры, могут меняться дочерние обьекты, чей трансформ нужно синхронизировать по сети. Мне нужно динамически добавлять нужное количество компонентов Network Transform Child на персонаж.
Заранее неизвестно, столько обьектов нужно синхронизировать.
Но при добавлении gameObject.AddComponent(typeof(NetworkTransformChild)) as NetworkTransformChild; выдает ошибку.

Синтаксис:
Используется csharp
//Debug
    private void Awake()
    {
        NetworkTransformChild NetworkTrans = gameObject.AddComponent(typeof(NetworkTransformChild)) as NetworkTransformChild;
        NetworkTrans.target = transform.GetChild(0);
    }
    //EndDebug
 

Re: Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 13 авг 2017, 22:37
seaman
NetworkTransform на том же объекте есть?
О как. Поискал. Обнаружил, что это общая проблема.
Два разных решения есть тут:
https://forum.unity3d.com/threads/unet- ... pt.390344/

Re: Инициализация поля до выполнения метода Awake

СообщениеДобавлено: 13 авг 2017, 23:04
EagleOwle
Спасибо. Почитал... помогло.