campfire/Assets/Scripts/LoraxCuller.cs

37 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoraxCuller : MonoBehaviour {
public Lorax[] Loraces;
public Transform ChunkKeepAliveTransformsParent;
private List<Transform> ChunkKeepAliveTransforms = new List<Transform>();
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;
}
}
}
}
}