GameObject создаётся вне родителя в дереве иерархии
Скрипт создания игрового объекта, который вист на объекте Player:
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKeyDown(KeyCode.Space))
{
Instantiate(bulletPrefab, bulletSpawn.transform.localPosition, Quaternion.identity);
}
}
Так как объект Bullet создаётся вне объекта Canvas его не видно даже если переключить окно в режим 3D
В инспекторе все выделенные на первом скриншоте объекты имеют координаты (0;0;0).
Уже пытался использовать функцию SetParent, но она ничего не изменила.
Версия Unity: 2019.3.2f1
Ответы (2 шт):
Автор решения: Mr. Linsux
→ Ссылка
Не без помощи комментаторов, но вопрос решён.
Вот как выглядит метод Update:
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKeyDown(KeyCode.Space))
{
GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.transform.position, Quaternion.identity) as GameObject;
bullet.transform.SetParent(parent.transform, false);
}
}
На всякий случай уточню, что объявлять отдельную переменную при создании объекта необязательно и установить родителя можно одной строкой:
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKeyDown(KeyCode.Space))
{
(Instantiate(bulletPrefab, bulletSpawn.transform.position, Quaternion.identity) as GameObject).transform.SetParent(parent.transform, false);
}
}
Автор решения: RiotBr3aker
→ Ссылка
Какие-то непонятные танцы с бубном и установкой родителя вручную, когда есть специальная перегрузка:
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0) || Input.GetKeyDown(KeyCode.Space))
{
Instantiate(bulletPrefab, bulletSpawn.transform.position, Quaternion.identity, parent.transform);
}
}


