Я не могу получить позицию игрового объекта в переменную vector3 - PullRequest
0 голосов
/ 10 июня 2018

Как видите, я пытаюсь создать переменную vector3, в которой хранится позиция игрового объекта, и я получаю следующую ошибку:

Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство

Я пытался превратить игровой объект в статическую переменную, но затем я получаю еще одну ошибку в Unity:

NullReferenceException: ссылка на объект не установлена ​​на экземпляробъекта

Как я могу это исправить?

public GameObject playerobject;

private Vector3 playerposition = playerobject.transform.position;

1 Ответ

0 голосов
/ 10 июня 2018

Вы должны инициализировать playerposition в функции вместо того, где она объявлена.Функция Start или Awake подходит для этого.Если вам нужно обновлять переменную playerposition в каждом кадре, сделайте это в функции Update.Причина этого заключается в том, что переменная, которую вы используете для инициализации другой переменной вне функции, должна быть переменной static или const.

Я уверен, что вы не хотите, чтобы playerobject был static или const, потому что вы хотите назначить его в редакторе, поэтому выполнение этого в функции является правильным способом сделать это.

public GameObject playerobject;
private Vector3 playerposition;

void Awake()
{
    playerposition = playerobject.transform.position;
}

После этого обязательно добавьте Объект в слот playerobject в Редакторе.

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