Эффективность ссылки на объект - PullRequest
0 голосов
/ 12 мая 2019

У меня есть сценарий пользовательского интерфейса, для которого требуется ссылка на около 25 различных объектов. Сначала я потратил некоторое время, чтобы сделать инспектора разборчивым и организованным, чтобы я мог легко перетаскивать свои объекты на место. Сверхурочные работы я устал видеть, что длинный список постоянно переполняет моего инспектора для менеджера пользовательского интерфейса. Поэтому я решил получить игровые объекты из моего метода запуска с помощью transform.GetChild (). Также некоторые объекты используют transform.GetChild (). GetChild ()

Мне просто интересно, если это плохая практика? Объекты не будут переупорядочены в иерархии, поэтому я решил, что это нормально, но плохо ли это для производительности? Theres, вероятно, 60 строк кода, который ничего не делает, кроме захвата игровых объектов, поэтому я спрашиваю

1 Ответ

0 голосов
/ 13 мая 2019

Я обычно использую GetChild для решения подобных проблем. Хотя недавно я обнаружил, что у Monobehaviour есть метод:

Void Reset()
{
    _nameInputField = transform.Getchild(0).GetChild(1).GetComponent<InputField>();
}

, который вызывается только в редакторе, когда вы нажимаете «Сброс» в контекстном меню Cog компонента (рис добавлен). так что вам не нужно делать это во время выполнения. (в качестве меры безопасности я бы добавил тот же код в метод Awake, но вызывал бы его только после проверки, если ноль). enter image description here

...