Как указать позицию GameObject в префабе скрипта в Unity - PullRequest
1 голос
/ 17 июня 2020

Я только начинаю работать с Unity и в своей первой игре я пытаюсь заставить эти вражеские кубы преследовать игрока. Враги появляются в случайном месте, и я пытаюсь заставить их двигаться к положению куба игрока. Но когда я пытаюсь сослаться на Transform игрока, он не позволяет мне перетащить его наверх, какие-либо исправления? сборный. В сообщении об ошибке говорится, что "переменная player для врагаFollow не назначена". Она не позволяет мне назначить Player.

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Если я правильно понимаю, вы пытаетесь назначить игрока врагу в конфигурации префаба. Это не сработает, потому что префаба нет в сцене. Поскольку префаб может быть создан в любой сцене, вы не можете ссылаться на объекты сцены. Вам нужно сделать это во время игры, если только все враги уже не находятся в сцене, когда вы ее настраиваете (в этом случае вам нужно будет сделать это с созданным экземпляром врага, а затем скопировать и вставить его).

Вы можете использовать FindGameObjectWithTag(), как в ответе Джеффа, но обязательно назначьте тег «Player» для GameObject или префаба player.

Другой метод, который я бы порекомендовал, состоял бы в том, чтобы все, что создает экземпляры врагов, назначали свою цель, таким образом вам не нужно искать тег со строкой, которую вы можете ввести с ошибкой, и вы можете просто изменить ссылка в одном месте, когда нужно что-то изменить.

1 голос
/ 17 июня 2020

Вы можете добавить это в методе void Start ():

player = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...