Как программно управлять размещением GameObject в сцене в Unity - PullRequest
0 голосов
/ 29 мая 2020

Я создал файл кода в Unity и назначил его пустому GameObject, который я поместил в сцену:

var obj = new GameObject("Sample");
obj.transform.position = new Vector3(0, 0, 0);
var text = obj.AddComponent<TextMesh>();
text.text = "Hello world";

Когда я запускаю сцену, я вижу текст. И в этом моя проблема: я нигде в коде не указал, чтобы добавить obj в сцену, но он, по-видимому, размещается автоматически. Это может быть проблемой, если я хочу представить объект позже, чем время создания экземпляра.

Что я делаю не так? Как этого добиться? Какие здесь шаблоны / лучшие практики?

1 Ответ

2 голосов
/ 29 мая 2020

Немедленное исправление:

Используйте obj.SetActive(false), чтобы временно отключить объект, а затем используйте obj.SetActive(true), когда вам нужно, чтобы объект был активным.

Другие решения / лучшие практики:

Создайте в сцене желаемый объект, сохраните его как сборный (сборный объект), а затем создайте его экземпляр только тогда, когда он вам нужен. Вот ссылка на дополнительную информацию о сборной системе. https://docs.unity3d.com/Manual/Prefabs.html

Объединение объектов обычно используется, когда у вас будет несколько одинаковых объектов (например, лазеры, пули и т. Д. c). Может помочь просмотр этого видео: https://www.youtube.com/watch?v=tdSmKaJvCoA

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