Зависает Unity при создании объекта
|
|
XJIE6yIIIEK | Дата: Пятница, 23 Февраля 2018, 00:56 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Доброго времени суток. Делаю небольшую работу. Возникла проблема с созданием объекта.
Есть дрон. При определённых условиях он пускает ракету в цель.
Код public GameObject rocket;
Создание ракеты выглядит таким образом:
Код rocket = Instantiate (rocket, transform.position, transform.rotation) as GameObject;
При выполнении данного куска кода Unity зависает намертво. При этом, если записывать код таким образом:
Код Instantiate (rocket, transform.position, transform.rotation);
То объект создаётся, но на него нет референса, а он мне нужен. Что я делаю не так?
Занимайся только тем, что любишь, и этим ты добъёшься большего.
Сообщение отредактировал XJIE6yIIIEK - Пятница, 23 Февраля 2018, 02:15 |
|
| |
roma3fon | Дата: Пятница, 23 Февраля 2018, 01:44 | Сообщение # 2 |
участник
Сейчас нет на сайте
| XJIE6yIIIEK, хахахахахахаха, как же я это обожаю, чем ты руководствовался, когда писал данный код? xD Перевожу на русский:
Код ракете присваевается ссылка на клоннированный объект той ракеты которой ты присваеваешь ссылку на клоннированный объект той ракеты которой ...
Сообщение отредактировал roma3fon - Пятница, 23 Февраля 2018, 01:45 |
|
| |
FlyOfFly | Дата: Пятница, 23 Февраля 2018, 02:18 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Цитата XJIE6yIIIEK ( ) При выполнении данного куска кода Unity зависает намертво. При этом, если записывать код таким образом:
чем генрики не угодили?
Код rocket = Instantiate<GameObject>(rocket, transform.position, transform.rotation)
|
|
| |
XJIE6yIIIEK | Дата: Пятница, 23 Февраля 2018, 02:18 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Цитата roma3fon ( ) хахахахахахаха Смешно. Изначально я закидываю префаб ракеты в переменную GameObject. Далее мне нужно создать эту ракету. После создания ракеты, мне нужно вызвать у неё определённый метод. Если я создаю просто через Instantiate
Код ... Instantiate (rocket, transform.position, transform.rotation); ...
То он пишет ошибку NullReferenceException, и метод не выполняется. Если я создаю объект таким образом:
Код ... rocket = Instantiate (rocket, transform.position, transform.rotation) as GameObject; ...
То Unity виснет.
P.S. Когда писал код, руководствовался документацией по Unity.
Занимайся только тем, что любишь, и этим ты добъёшься большего.
|
|
| |
FlyOfFly | Дата: Пятница, 23 Февраля 2018, 02:23 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Цитата XJIE6yIIIEK ( ) NullReferenceException ЭЭЭ, это значит что rocket не существует, может она у тебя удаляется перед созданием или ей присваивается нулевой адрес перед использованием
|
|
| |
XJIE6yIIIEK | Дата: Пятница, 23 Февраля 2018, 10:10 | Сообщение # 6 |
был не раз
Сейчас нет на сайте
| Тему можно закрывать. Забыл поставить yield return null в корутине движения ракеты. В 5 ночи такое сложно заметить.
P.S. Если просто Instantiate использовал, то выскакивала ошибка UnassignedReferenceException, когда обращался к ГО ракеты.
Занимайся только тем, что любишь, и этим ты добъёшься большего.
|
|
| |