Столкнулся с проблемой пользовательского интерфейса, которую я изо всех сил пытаюсь решить (пользовательский интерфейс всегда является проблемой для меня). Суть проекта в том, что у меня есть массив точек появления (Positions [i]), массив, состоящий из префабов противника (Enemies [j]) и просто префаб панели пользовательского интерфейса с текстовым компонентом (EnemyHUD). Когда я передаю имена строк через определенную функцию, пока есть готовый сборный дом с таким же именем и позицией, он загружается во врага. Теперь, для каждого загруженного префаба противника, я хотел бы, чтобы префаб "EnemyHUD" создавал экземпляры на позициях противника и с текстом, отображающим имя врага.
GameObject HUD = Instantiate(EnemyHUB, Positions[i].position, Positions[i].rotation);
Эта строка порождает префаб EnemyHUD в правильное местоположение, но оно определяет их за пределами холста, чтобы они отображались в виде красных крестиков. Поэтому я добавил это:
HUD.transform.SetParent(GameObject.Find("Canvas").transform, false);
Это устраняет проблему создания экземпляра за пределами холста, но также (раздраженно) сбрасывает позицию создания экземпляра и смущающе, я не уверен, как установить его обратно, при этом убедившись, что это остается ребенком холста. Пока событие не касалось части изменения имени.
Я работаю над этим с прошлой ночи, и хотя я получил много разных результатов экспериментов, ни один из них не был тем, который я хочу. Очень по-прежнему новичок, поэтому я уверен, что он смотрит мне в лицо, поэтому, пожалуйста, помогите мне найти его.