私は無限のランナーゲームを作っています。私は無作為に産卵するタイル(4気圧)のセットを持っています。私は、最適化のために、プレイヤーが無効にしてもゲームオブジェクトをインスタンス化して破棄するのではなく、無効化されたタイルからタイルを生成する必要があるときに決定しました。上記のシナリオを実行する2つのリストをアクティブにし、非アクティブ化しました。私はそれらを無効にすることができましたが、私はそれらを無効リストに追加して、いつそれらをスポーンするかわかりません。必要です。どうすれば達成できるのですか?無効なgameObjectをリストから別のリストに移動するには?
これはコードとこれまでのことです。
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
助けてくれてありがとう。本当に感謝。 :) –