【发布时间】:2016-07-28 16:08:48
【问题描述】:
我一直在制作无尽的跑步游戏。我有一组随机生成的瓷砖(4 atm)。出于优化目的,我决定不要在玩家运行时实例化和销毁游戏对象,尽管它确实禁用了它们,并且一旦需要从停用的图块中生成图块。我将两个列表激活和停用,它们将执行上述情况。我设法禁用它们,但我不知道如何将它们添加到禁用列表并在何时生成它们。需要。我怎样才能实现它。
这是代码以及我到目前为止所做的事情。
TileManager.cs
void Update ()
{
//Vector3 offset = new Vector3(0f, 0f, Time.time * speed);
//GameObject go;
//go.transform.SetParent(transform);
if (playerTransform.position.z - safeZone > (spawnZ - amtOfTilesOnScreen * tileLength))
{
SpawnTile();
DeleteTile();
}
}
private void DeleteTile()
{
//Destroy(activeTiles[0]);
activeTiles[0].SetActive(false);
activeTiles.RemoveAt(0);
//deactivatedTiles.RemoveAt(0);
}
private void SpawnTile(int prefabIndex = -1)
{
GameObject go;
if (prefabIndex == -1)
{
go = Instantiate(tilePrefabs[RandomPrefabIndex()]) as GameObject;
}
else
{
go = Instantiate(tilePrefabs[prefabIndex]) as GameObject;
}
go.transform.SetParent(transform);
go.transform.position = Vector3.forward * spawnZ;
spawnZ += tileLength;
activeTiles.Add(go);
//go.SetActive(false);
//if (deactivatedTiles != null)
//{
// Debug.Log("Has a Tile");
// deactivatedTiles[0].SetActive(true);
//}
//Debug.Log(deactivatedTiles);
}
非常感谢您的帮助。
【问题讨论】:
标签: c# unity3d unity5 gameobject