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 GameObject[,] EnabledChunks; private void Awake() { foreach (Transform Child in ChunkKeepAliveTransformsParent) { ChunkKeepAliveTransforms.Add(Child); } EnabledChunks = new GameObject[Loraces.Length, ChunkKeepAliveTransforms.Count]; } private void Update() { 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; Debug.DrawLine(KeepAlivePosition, KeepAlivePosition + Vector3.up * 5, Color.red); GameObject NewChunk = Lorax.GetChunkAt(KeepAlivePosition.x, KeepAlivePosition.z); if (EnabledChunks[LoraxIndex, ChunkIndex] != NewChunk) { if (EnabledChunks[LoraxIndex, ChunkIndex] != null) { EnabledChunks[LoraxIndex, ChunkIndex].SetActive(false); } NewChunk.SetActive(true); EnabledChunks[LoraxIndex, ChunkIndex] = NewChunk; } } } } }