Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 7
1

Как создать объект из префаба с начальными параметрами?

09.10.2019, 17:46. Просмотров 3773. Ответов 4
Метки нет (Все метки)


Добрый вечер. Вопрос по Unity3D. При создании объекта (префаб) как проще сразу занести в скрипт некоторые поля, что-то наподобие конструктора с параметрами? По-хорошему это легко решается, если объекты сложены в пуле, но вопрос остается вопросом - можно ли сразу в Instantiate как-нибудь красиво передать параметры без перегрузки и заморочек?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2019, 17:46
Ответы с готовыми решениями:

Как создать объект класса с двумя параметрами?
#include <iostream> using namespace std; class rational{ public: rational(int...

Как правильно создать объект Command при помощи мастера с параметрами
Здравствуйте. Делаю программу демонстрирующую объекты Command с использованием именованных...

Как создать элемент GUI на основе префаба?
Необходимо динамически создать N элементов интерфейса (в данном случае кнопок). Создаю префаб...

Созданный из префаба объект не движется (velocity)
Написала скрипт для создания пулек. Но почему-то работает некорректно. Пули создаются, стоят и...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы геймдизайнеров
4
114 / 93 / 33
Регистрация: 07.05.2017
Сообщений: 751
09.10.2019, 20:42 2
берешь и передаешь как обычно, присваивая его полям нужные значения. в чем проблема ?
можешь загнать его при создании в локальную переменную, задать параметры и обнулить ячейку локального Go

Добавлено через 4 минуты
а чем собственно конструкторы не подходят ?
0
240 / 181 / 63
Регистрация: 04.03.2019
Сообщений: 989
10.10.2019, 18:37 3
Nikita1302, в создаваемом обьекте скорее всего есть скрипт.
вот в нем и создайте метод Init() с параметрами.
а в нем уже присваивайте все что вам нужно.

второй вариант это напрямую обращаться к открытым полям обьекта.
1
225 / 203 / 92
Регистрация: 26.10.2012
Сообщений: 600
14.10.2019, 07:54 4
Например так
C#
1
2
3
4
5
6
7
8
9
10
11
12
class MyComponent : MonoBehaiviour
{
        private static GameObject _prefab;
        public static MyComponent Create(params object[] args)
        {
               var gameObject = Instantiate(_prefab ?? (_prefab = Resources.Load<GameObject>("prefabPath")));
               var myComp = gameObject.GetComponent<MyComponent>();
               myComp.par1 = args[0];
               // ...
               return myComp;
        }
}
1
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 7
14.10.2019, 13:56  [ТС] 5
Вопрос был решен в самом начале, просто я неправильно понял ошибку. Я ссылался на сам префаб, а не объект, который создал с помощью префаба, а параметры в несуществующий объект занести невозможно. То есть я написал:
C#
1
2
Instantiate(prefab);
prefab.GetComponent<Component>().Property = Something; // Exception
Вместо
C#
1
2
GameObject obj = Instantiate(prefab);
obj.GetComponent<Component>().Property = Something;
Второй код работает успешно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2019, 13:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ссылка на объект присутствующий в сцене из префаба
Персонаж перемещается по тайлам. На нем висит скрипт, который проверяет - в каком тайле находится...

Почему я не могу создать объект класса с параметрами, которые я считала из бинарного файла?
#include &lt;string&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &quot;windows.h&quot; #include...

Создать объект "Прямоугольник" с параметрами: длины сторон, цвет
Объект — прямоугольник с параметрами: длины сторон, цвет. Пусть методами будет а)...

Как создать объект оператором new, если имеется только тип указателя на объект, переданный через шаблон?
Есть шаблон. Точно известно, что его параметр Т это указатель. Как с помощью new создать переменную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.