Создание бесконечного количества префабов

Я пытался изучить Unity 3D, создав простой раннер. Игра порождала простую дорогу из магазина активов. Я решил добавить несколько препятствий к этой дороге и сделать из нее префаб, но когда я добавил этот префаб в массив, из которого Unity берет префабы для их создания и запускает игру, префабы не были созданы. Вот мой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TileManager : MonoBehaviour
{

public GameObject[] amountOfPrefabs;
private Transform playerTransform;
private float spawnZ = 0.0f;
private float tileLength = 30.0f;
private int amnTileOnScreen = 7;
// Use this for initialization
void Start()
{
    playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
    for (int i = 0; i < amnTileOnScreen; i++)
    {
        SpawnTile();
    }
}

// Update is called once per frame
void Update()
{
    if (playerTransform.position.z > (spawnZ - amnTileOnScreen * tileLength))
    {
        SpawnTile();
    }
}

private void SpawnTile(int prefabIndex = -1)
{
    GameObject go;
    go = Instantiate(amountOfPrefabs[0]) as GameObject;
    go.transform.SetParent(transform);
    go.transform.position = Vector3.forward * spawnZ;
    spawnZ += tileLength;
}
}

Помогите, пожалуйста.


person Vit    schedule 24.07.2018    source источник
comment
Где вы инициализируете и заполняете массив GameObject []?   -  person S.Fragkos    schedule 24.07.2018
comment
Он инициализируется в 8-й строке «public GameObject amountOfPrefabs»;   -  person Vit    schedule 24.07.2018
comment
верно ... это декларация, я ищу amountOfPrefabs = GameObject [xx]; Вы также уверены, что в amountOfPrefabs [0] есть объект? Вы получаете какие-либо ошибки во время SpawnTile ()?   -  person S.Fragkos    schedule 24.07.2018
comment
@ S.Fragkos Заполняется в инспекторе перетаскиванием.   -  person Gunnar B.    schedule 24.07.2018
comment
@Vit Вы проверяли, действительно ли вызывается SpawnTile? Добавьте к нему выражение Debug.Log. Помимо этого, есть несколько вещей, которые вы не должны делать так, как вы это делали (например, вы создадите много объектов, и вы не должны родительские объекты, потому что каждый вновь добавленный дочерний элемент приведет к обновлению / повторению всего контейнера. в текущих версиях единства). Дополнительное ключевое слово здесь: объединение объектов.   -  person Gunnar B.    schedule 24.07.2018
comment
@Gunnar B. SpawnTile добавлен   -  person Vit    schedule 24.07.2018
comment
Вы имеете в виду позвонили? Отображаются ли объекты в иерархии? Возможно, родитель находится в каком-то нерабочем положении, поэтому вы не видите объекты в игровом представлении.   -  person Gunnar B.    schedule 24.07.2018


Ответы (1)


Похоже, что с Unity3D что-то не так, потому что, когда я создал тот же GameObject с тем же скриптом, он начал работать

person Vit    schedule 29.07.2018