| Зависает 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, когда обращался к ГО ракеты.
 
 Занимайся только тем, что любишь, и этим ты добъёшься большего.
 |  |  |  |  |