2016-07-01 2 views
0

Iam, создающий настраиваемый сценарий редактора в единстве. Я хочу найти MainCamera в сцене для Пользовательский класс редактора, поэтому его можно напрямую назначить сценарию, и мне не нужно его назначать. Я знаю, что могу найти все камеры на сцене и перебрать ее через теги, но я хочу знать, доступна ли погода, например, Camera.main, которая приносит MainCamera сцены в Custom Editor.Поиск основной камеры в классе CustomUnityEditor

PS: Я знаю, что его можно легко назначить напрямую, но все же я хочу сделать это, извлекая его в пользовательский скрипт редактора. Также я не хочу делать это во время выполнения в начале, так как у меня есть некоторые связанные с холстом вычисления, которые необходимо позаботиться.

+0

Причина, по которой я хочу использовать это, - Camera.main дает значение null в Custom Editor Class. Кроме того, поскольку Camera.main дает значение null, я хочу знать, в какое время тегеризованный объект MainCamera присваивается Camera.main? Я всегда предполагал, что Camera.main всегда назначается на сцене до сегодняшнего дня. –

ответ

1

OK Я знаю, что это неловко, но вот ответ, который был очень прост. Вы можете напрямую использовать GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>(); и получить основную камеру. Примечание. Это найдет первую камеру с тегом, например, если в вашей сцене есть только одна основная камера, тогда вы получите это, и вам не нужно беспокоиться о Camera.main. Но моя вторая часть вопроса по-прежнему остается. Когда назначается Camera.main?

+0

Не стесняйтесь принимать свой ответ, чтобы закрыть сообщение;) –

+0

Я ждал другого ответа, если возможно, когда назначается Camera.main, но я думаю, что это должно быть опубликовано как еще один вопрос. В любом случае, спасибо Goblin :) LOL не может принять еще два дня в качестве своего собственного ответа. –

+0

Будьте осторожны! В качестве наилучшей практики почти всегда лучше назначать камеру/объекты через редактор и не извлекать их в коде. Я знаю, что его всегда можно избежать, но метод GameObject.FindGameObjectWithTag (string) .GetComponent <>() - одна из самых дорогих функций Unity. – NewDeveloper

Смежные вопросы