using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BITKit.WorldChunk { public interface IWorldChunk { Rect GetRect(); void SetActive(bool active); } public abstract class WorldChunk : MonoBehaviour, IWorldChunk { public static void Add(IWorldChunk chunk) { chunks.Add(chunk); ChunksArray = chunks.ToArray(); } public static void Remove(IWorldChunk chunk) { chunks.Remove(chunk); ChunksArray = chunks.ToArray(); } private static readonly List chunks=new(); public static IWorldChunk[] ChunksArray { get; private set; }= Array.Empty(); public abstract Rect GetRect(); public abstract void SetActive(bool active); private void OnEnable() { chunks.Add(this); } private void OnDisable() { chunks.Remove(this); } } }