Как получить скрипт GameObject под моим выбранным GameObject?(Unity2D) (C #) - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь установить некоторые переменные в другом объекте (называемом камерой), когда я покидаю его.Однако я не могу получить доступ к сценарию этого конкретного GameObject из многих на сцене.Я получаю сообщение об ошибке «не задан экземпляр объекта».

Обратите внимание, что сенатор «знает», в какой камере он находится, по идентификатору (int) и по имени (строка).Палата также «знает», что там есть сенатор, но не кто.Мне нужно очистить камеру, когда уходит объект Senator, но я не могу удержать сценарий для этой конкретной камеры.

Кодировка следующая:

            // Do Work
            rbSenator.transform.position = newPos;
            Senator senatorSc = rbSenator.GetComponent<Senator>();
            originChamberName = senatorSc.GetInChamber();
            goChamber = GameObject.Find(originChamberName);
            Chamber originSc = goChamber.GetComponent<Chamber>();  //******************************** error
            originSc.FreeSeat(originChamber, senatorSeat);
            // Do Work

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Если есть только одна комната, которая является дочерней по отношению к вашему объекту, вы можете использовать GetComponentInChildren<TypeOfYourRoom>() Если есть несколько, тогда используйте цикл for, чтобы найти ту, которая вам нужна, с ее именем или чем-то еще

0 голосов
/ 19 февраля 2019

Вы можете быть миссией rbSenator GameObject.Дайте мне знать, что вы назначаете этот rbSenator GameObject через инспектора?Если да, проверьте поле rbSenator в Inspector во время выполнения.Примечание. Иногда единицы делают поля пустыми во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...