using UnityEngine; namespace ET { public class ResourceMonsterGroupViewComponentAwakeSystem: AwakeSystem { public override void Awake(ResourceMonsterGroupViewComponent self, long monsterGroupId) { self.Awake(monsterGroupId); } } public class ResourceMonsterGroupViewComponentDestroySystem: DestroySystem { public override void Destroy(ResourceMonsterGroupViewComponent self) { self.Destroy(); } } [FriendClass(typeof(ResourceViewComponent))] [FriendClass(typeof(ResourceMonsterGroupViewComponent))] public static class ResourceMonsterGroupViewComponentSystem { public static void Awake(this ResourceMonsterGroupViewComponent self, long monsterGroupId) { if (monsterGroupId <= 0) { Log.Error("MonsterGroupId is invalid"); return; } Unit unit = UnitHelper.GetMyUnitFromZoneScene(self.ZoneScene()); var monsterGroupComp = unit.GetComponent(); var monsterGroup = monsterGroupComp.GetChild(monsterGroupId); if (monsterGroup == null) { return; } var monsterGroupConfig = monsterGroup.Config; var resourceView = self.Parent.GetComponent(); GameObject monsterGO = self.InstantiateSync("MonsterIcon", resourceView.ResourceRoot.transform); self.Icon = monsterGO.GetComponent(); } public static void Destroy(this ResourceMonsterGroupViewComponent self) { if (self.Icon != null) { GameObject.Destroy(self.Icon.gameObject); } } } }