This commit is contained in:
CortexCore
2025-02-27 12:34:18 +08:00
parent 0ecac57a98
commit ed08fd23bd
35 changed files with 2136757 additions and 1731262 deletions

View File

@@ -14,6 +14,7 @@ namespace BITKit
[Serializable]
public class IntervalTick:ITicker
{
[SerializeField]
private float interval;
public ulong TickCount=>IntervalTickService.GetTickCount(interval);

View File

@@ -60,7 +60,7 @@ namespace BITKit.OpenWorld
#if UNITY_EDITOR
[BIT]
#endif
private void CalculateBounds()
public void CalculateBounds()
{
if (TryGetComponent<Collider>(out var _collider))
{

View File

@@ -25,7 +25,6 @@ namespace BITKit.OpenWorld
private readonly ConcurrentDictionary<int, IWorldChunkObject> dictionary=new();
[SerializeReference, SubclassSelector] private ITicker ticker;
[SerializeReference, SubclassSelector] private ISceneService sceneService;
[SerializeField, ReadOnly] private int count;
[SerializeField, ReadOnly] private int tickTaskCount;
[SerializeField] private bool drawBounds;
@@ -42,24 +41,13 @@ namespace BITKit.OpenWorld
protected virtual void Start()
{
sceneService?.RegisterLoadTaskAsync(LoadTask);
ticker.Add(OnTick);
destroyCancellationToken.Register(Dispose);
_quadtree = new QuadtreeRoot<IWorldChunkObject, Node<IWorldChunkObject>>(transform.position, size);
_camera = Camera.main;
}
private async UniTask LoadTask()
{
var frame=0;
while (count is 0 || frame++<32)
{
if (destroyCancellationToken.IsCancellationRequested) return;
await UniTask.NextFrame();
}
}
protected virtual void Dispose()
{
sceneService?.UnRegisterLoadTaskAsync(LoadTask);
ticker.Remove(OnTick);
_registerQueue.Clear();
_unregisterQueue.Clear();