我一直在做無盡的亞軍遊戲。我有一套隨機產卵的瓷磚(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);
}
一個幫助將不勝感激。
那麼通過將NumberOfTilesThatFitOnScreen設置爲填充屏幕的圖塊數量意味着什麼? –
類似於'NumberOfTilesThatFitOnScreen =(safeZone/tileLength)'。如果看到圖塊消失/重新出現(當移到前面時),然後增加它。 – Doc
感謝您對此的幫助。非常感謝。 :) –