using System.Collections; using System.Collections.Generic; using UnityEngine; public class LoraxCuller : MonoBehaviour { public Lorax[] Loraces; public Transform ChunkKeepAliveTransformsParent; private List ChunkKeepAliveTransforms = new List(); private List[] EnabledChunks; private void Awake() { EnabledChunks = new List[Loraces.Length]; foreach (Transform Child in ChunkKeepAliveTransformsParent) { ChunkKeepAliveTransforms.Add(Child); } for (int LoraxIndex = 0; LoraxIndex < Loraces.Length; LoraxIndex++) { EnabledChunks[LoraxIndex] = new List(); for (int ChunkIndex = 0; ChunkIndex < ChunkKeepAliveTransforms.Count; ChunkIndex++) { EnabledChunks[LoraxIndex].Add(null); } } } private void Update() { for (int LoraxIndex = 0; LoraxIndex < Loraces.Length; LoraxIndex++) { for (int ChunkIndex = 0; ChunkIndex < ChunkKeepAliveTransforms.Count; ChunkIndex++) { GameObject OldChunk = EnabledChunks[LoraxIndex][ChunkIndex]; if (OldChunk != null) { OldChunk.SetActive(false); } } } for (int LoraxIndex = 0; LoraxIndex < Loraces.Length; LoraxIndex++) { Lorax Lorax = Loraces[LoraxIndex]; for (int ChunkIndex = 0; ChunkIndex < ChunkKeepAliveTransforms.Count; ChunkIndex++) { Vector3 KeepAlivePosition = ChunkKeepAliveTransforms[ChunkIndex].position; GameObject NewChunk = Lorax.GetChunkAt(KeepAlivePosition.x, KeepAlivePosition.z); NewChunk.SetActive(true); EnabledChunks[LoraxIndex][ChunkIndex] = NewChunk; } } } }