Как присвоить переменную типа Camera через метод Start()

105
22 июня 2019, 20:50

В скрипте есть переменная : public Camera PlayerCam; Через метод public void Start() { ... } хочу присвоить этой переменной главную камеру персонажа. Пробывал с помощью

PlayerCam = GameObject.FindGameObjectWithTag("Player").transform.GetChild(0);

Но появляется ошибка, что переменная типа GameObject не может быть занесена в переменную типа Camera.

Answer 1

Что бы взять главную камеру можете воспользоваться

PlayerCam = Camera.main;

И как писали выше, вы присваивали не тот тип данных камере. Если уж вы и находите объект камеры на сцене то берите с неё компонент камеры и присваивайте куда хотите.

PlayerCam = GameObject.FindGameObjectWithTag("Player").transform.GetChild(0).gameObject.GetComponent<Camera>();
Answer 2

Посмотрите документацию по GetChild() - этот метод возвращает тип Transform, а вы пытаетесь сохранить его в переменную типа Camera. Если вы хотите получить какой-либо скрипт, прикрепленный, к искомому вами GameObject, то воспользуйтесь методом GetComponent, указав в качестве параметра T - Camera.

Стоит заметить, что код, который вы привели в вопросе крайне не оптимальный и использовать его не стоит. Лучше всего прокидывать ссылки на компоненты и объекты в Inspector.

READ ALSO
SearchBar в С#(mvvm)

SearchBar в С#(mvvm)

Хочу сделать searchbar для поиска людей по имени или фамилии, но всё никак не получаетсяВот код

113
Проблема с добавлением таблицы в word

Проблема с добавлением таблицы в word

Пытаюсь добавить таблицу между двух параграфовНе получается

139
Как проверить большое целое число на четность или нечетность?

Как проверить большое целое число на четность или нечетность?

Написал программку, которая считывает с textbox число и проверяет его на четность и не четностьПрограмма работает, все норм, НО, выскакивает...

130
Как изменить дату по умолчанию в DatePicker wpf

Как изменить дату по умолчанию в DatePicker wpf

подскажите пожалуйста, как убрать дату DatePicker wpf по умолчанию которая: 0101

122