オブジェクトプーリングを理解しようとしています。私はスクリプトを一度に1つのオブジェクトを取得することができますが、同時に3つ以上をリストから引き出すことができる必要があります。プールされたリストの2つのオブジェクトを1つのスクリプトで使用する方法はありますか。
私のオブジェクトプーリングスクリプトは大きいので、必要でない限り、すべてを共有したくはありません。
私は炎の卵の場所を変更できるようにする必要があるので、私はそれを行うためのスクリプトを作成しました:
private void CreateWavesForFlames(GameObject flame, float xBase, float xDisplacement, float dropHeight)
{
flame.transform.position = new Vector3(xBase + xDisplacement, dropHeight, 0);
flame.SetActive(true); //this turn the pooled object on
}
は、だから私は、同時に3つの炎を起動し、変更する必要があり、その産卵場所
波コールは次のようになります:何が起こることは一つだけ火炎が作成されている、それが最後のCreatWavesForFlamesを使用しています
void Wave1() {
Debug.Log("Wave1");
tempGOHolder = gm.GetLargeFire();
CreateWavesForFlames(tempGOHolder, 0, 0, 12);
CreateWavesForFlames(tempGOHolder, 10, 0, 12);
CreateWavesForFlames(tempGOHolder, 15, 0, 12);
}
。私は3つが違う必要があります。
これを行う方法についてのご意見は素晴らしいと思います。
驚くばかりです。そのような簡単な解決策。私は私が繰り返すことができるとは思わなかったが、明らかに私はできる!ありがとうございました。 –
'GetLargeFire()'を拡張して、ゲームオブジェクトの配列を返し、これらの行をn回繰り返す代わりに配列をループすることもできます。 – TheDjentleman
これを理解する必要があります。提案していただきありがとうございます。 –