using System; using UnityEngine; namespace ET { public class SyncTimeComponentAwakeSystem: AwakeSystem { public override void Awake(SyncTimeComponent self) { self.Timer = TimerComponent.Instance.NewRepeatedTimer(1000, TimerType.SyncTime, self); } } public class SyncTimeComponentDestroySystem: DestroySystem { public override void Destroy(SyncTimeComponent self) { if (self.Parent == null) { return; } TimerComponent.Instance?.Remove(ref self.Timer); } } [Timer(TimerType.SyncTime)] public class SyncTimeComponentTimer : ATimer { public override void Run(SyncTimeComponent self) { try { if (self.IsDisposed || self.Parent == null) { return; } if (self.DomainScene() == null) { return; } self.SyncTime().Coroutine(); } catch (Exception e) { Log.Error(e.ToString()); } } } public static class SyncTimeComponentSystem { public static async ETTask SyncTime(this SyncTimeComponent self) { var unit = UnitHelper.GetMyUnitFromZoneScene(self.ZoneScene()); int result = await UnitHelper.GetUnitGameTime(unit); } } }