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

37 lines
1.0 KiB
C#
Raw Normal View History

2023-11-21 18:05:18 +08:00
using System;
2023-06-08 14:09:50 +08:00
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
{
2023-11-21 18:05:18 +08:00
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>();
2023-06-08 14:09:50 +08:00
public abstract Rect GetRect();
public abstract void SetActive(bool active);
2023-11-21 18:05:18 +08:00
private void OnEnable()
2023-06-08 14:09:50 +08:00
{
chunks.Add(this);
}
2023-11-21 18:05:18 +08:00
private void OnDisable()
2023-06-08 14:09:50 +08:00
{
chunks.Remove(this);
}
}
}