Префабы порождения как дети игрового объекта в единстве - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть игровой объект, который порождает 2 разных префаба.Я пытаюсь сделать эти порожденные объекты дочерними по отношению к игровому объекту spawner, но он не работает.

это моя попытка (этот код находится в игровом объекте spawner):

void Update () {

    if (Time.time > nextSpawn)
    {
        whatToSpawn = Random.Range(1, 3);
        Debug.Log(whatToSpawn);

        switch(whatToSpawn) {
        case 1:
                Instantiate(cube, transform.position, Quaternion.identity);
                cube.transform.parent = transform;
                break;
        case 2:
            Instantiate(circle, transform.position, Quaternion.identity);
            circle.transform.parent = transform;
            break;
        }

        nextSpawn = Time.time + spawnRate;
    }
}

и это приносит мне эту ошибку:

setting the parent of a transform which resides in a prefab is disabled

1 Ответ

0 голосов
/ 14 сентября 2018

Проблема в том, что вы пытаетесь установить родителей кубических и круговых префабов вместо реальных объектов куба и круга, которые вы создаете.Замените ваш оператор switch следующим:

switch(whatToSpawn)
{
    case 1:
        GameObject myCube = (GameObject)Instantiate(cube, transform.position, Quaternion.identity);
        myCube.transform.parent = transform;
        break;
    case 2:
        GameObject myCircle = (GameObject)Instantiate(circle, transform.position, Quaternion.identity);
        myCircle.transform.parent = transform;
        break;
}

Преобразование функции Instantiate в (GameObject) возвращает ссылку на объект, который вы только что создали.

Примечание : Как упоминалось в Draco18, более эффективно перегрузить Instantiate напрямую с родителем, как показано ниже:

switch(whatToSpawn)
{
    case 1:
        Instantiate(cube, transform.position, Quaternion.identity, transform);
        break;
    case 2:
        Instantiate(circle, transform.position, Quaternion.identity, transform);
        break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...