BITFALL/Assets/BITKit/Unity/Scripts/WorldChunk/IWorldBound.cs

37 lines
1.0 KiB
C#

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<IWorldChunk> chunks=new();
public static IWorldChunk[] ChunksArray { get; private set; }= Array.Empty<IWorldChunk>();
public abstract Rect GetRect();
public abstract void SetActive(bool active);
private void OnEnable()
{
chunks.Add(this);
}
private void OnDisable()
{
chunks.Remove(this);
}
}
}