вызова "Object reference is not instant to an object" при попытке использовать компонент transform у GameObject'а, заданного через инспектор? Сам GameObject является дочерним объектом внутри префаба и при попытке нативно воспользоваться компонентом transform, почему-то используется transform родительского объекта, хотя скрипт лежит на дочернем объекте. Я попытался указать через инспектор GameObject, transform которого мне необходимо получить и использовать, однако юнити говорит, что ссылка на объект не указывает на сам объект. В инспекторе, само собой, я указал правильный объект.
а ты в инспектор с файлов проекта префаб указал или со сцены? В первом случае это никак работать не будет. Либо объект на момент использования удален
В инспекторе выбран файл со сцены (перетащил из иерархии в инспектор). На момент использования обьект находится на сцене, иначе скрипт не смог бы запустится (скрипт висит на том же объекте, чей transform мне нужен).
без кода тогда сложно
Код простой: [Serialize Field] GameObject shellCircle; public void UpdateCircleRotation(Joystick joy) { Debug.Log(shellCircle.transform.rotation.x); } Метод вызывается через интерфейс Но это мало о чём говорит, ведь по факту сам объект отсутствует в SreializeField, хотя чётко указан через инспектор и присутвует на сцене.
[SerializeField] private GameObject shellCircle; public void UpdateCircleRotation(Joystick joy) { if (shellCircle != null) { Debug.Log(shellCircle.transform.rotation.x); } } попробуй так и проверь чтобы скрипт был не на родительском объекте а именно на shellCircle и попробуй пересобрать скрипты в проекте
Обсуждают сегодня