namespace ET { [ObjectSystem] public class UnitComponentAwakeSystem : AwakeSystem { protected override void Awake(UnitComponent self) { } } [ObjectSystem] public class UnitComponentDestroySystem : DestroySystem { protected override void Destroy(UnitComponent self) { } } [FriendOfAttribute(typeof(ET.UnitComponent))] public static class UnitComponentSystem { public static void Add(this UnitComponent self, Unit unit) { if (unit.IsActor) { self.IDActor = unit.Id; } } public static Unit GetActor(this UnitComponent self) { return self.GetChild(self.IDActor); } public static Unit Get(this UnitComponent self, long id) { Unit unit = self.GetChild(id); return unit; } public static void Remove(this UnitComponent self, long id) { Unit unit = self.GetChild(id); unit?.Dispose(); } } }