using System; using System.Collections; using System.Collections.Generic; using Cysharp.Threading.Tasks.Triggers; using UnityEngine; namespace BITKit { public class UnityUpdateTick:IMainTicker { public ulong TickCount { get; set; } public void Add(Action action) { throw new NotImplementedException(); } public void Add(Action action)=>UnityTickService.UpdateTick += action; public void Remove(Action action)=>UnityTickService.UpdateTick -= action; public void ManualTick(float delta) { throw new NotImplementedException(); } } public class UnityFixedUpdateTick:IFixedTicker { public ulong TickCount { get; set; } public void Add(Action action) { throw new NotImplementedException(); } public void Add(Action action)=>UnityTickService.FixedUpdateTick += action; public void Remove(Action action)=>UnityTickService.FixedUpdateTick -= action; public void ManualTick(float delta) { throw new NotImplementedException(); } } public class UnityLateUpdateTick:IAfterTicker { public ulong TickCount { get; set; } public void Add(Action action) { throw new NotImplementedException(); } public void Add(Action action)=>UnityTickService.LateUpdateTick += action; public void Remove(Action action)=>UnityTickService.LateUpdateTick -= action; public void ManualTick(float delta) { throw new NotImplementedException(); } } public class UnityTickService : MonoBehaviour { public static event Action UpdateTick; public static event Action FixedUpdateTick; public static event Action LateUpdateTick; private void Update() { UpdateTick?.Invoke(Time.deltaTime); } private void FixedUpdate() { FixedUpdateTick?.Invoke(Time.fixedDeltaTime); } private void LateUpdate() { LateUpdateTick?.Invoke(Time.deltaTime); } } }