private void OnDestroy() { if (Singleton <GameEventSys> .get_instance() != null) { Singleton <GameEventSys> .get_instance().RmvEventHandler <GameDeadEventParam>(GameEventDef.Event_ActorDead, new RefAction <GameDeadEventParam>(this.onActorDead)); Singleton <GameEventSys> .get_instance().RmvEventHandler <SGroupDeadEventParam>(GameEventDef.Event_SpawnGroupDead, new RefAction <SGroupDeadEventParam>(this.onSpawnGroupDone)); Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_FightPrepare, new RefAction <DefaultGameEventParam>(this.onFightPrepare)); Singleton <GameEventSys> .get_instance().RmvEventHandler <HurtEventResultInfo>(GameEventDef.Event_ActorDamage, new RefAction <HurtEventResultInfo>(this.onActorDamage)); Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_FightStart, new RefAction <DefaultGameEventParam>(this.onFightStart)); Singleton <GameEventSys> .get_instance().RmvEventHandler <PoolObjHandle <ActorRoot> >(GameEventDef.Event_ActorInit, new RefAction <PoolObjHandle <ActorRoot> >(this.onActorInit)); Singleton <GameEventSys> .get_instance().RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_ActorEnterCombat, new RefAction <DefaultGameEventParam>(this.onEnterCombat)); Singleton <GameEventSys> .get_instance().RmvEventHandler <TalentLevelChangeParam>(GameEventDef.Event_TalentLevelChange, new RefAction <TalentLevelChangeParam>(this.onTalentLevelChange)); } if (Singleton <GameSkillEventSys> .get_instance() != null) { Singleton <GameSkillEventSys> .get_instance().RmvEventHandler <ActorSkillEventParam>(GameSkillEventDef.AllEvent_UseSkill, new GameSkillEvent <ActorSkillEventParam>(this.onUseSkill)); Singleton <GameSkillEventSys> .get_instance().RmvEventHandler <DefaultSkillEventParam>(GameSkillEventDef.Event_UseCanceled, new GameSkillEvent <DefaultSkillEventParam>(this.onUseSkillCanceled)); } Singleton <EventRouter> .GetInstance().RemoveEventHandler <PoolObjHandle <ActorRoot>, int, bool, PoolObjHandle <ActorRoot> >("HeroGoldCoinInBattleChange", new Action <PoolObjHandle <ActorRoot>, int, bool, PoolObjHandle <ActorRoot> >(this.OnActorBattleCoinChanged)); this.ClearDelayTimers(); TriggerActionWrapper[] actionList = this.ActionList; for (int i = 0; i < actionList.Length; i++) { TriggerActionWrapper triggerActionWrapper = actionList[i]; if (triggerActionWrapper != null) { triggerActionWrapper.Destroy(); } } CTriggerMatch[] triggerMatches = this.TriggerMatches; for (int j = 0; j < triggerMatches.Length; j++) { CTriggerMatch cTriggerMatch = triggerMatches[j]; if (cTriggerMatch != null) { TriggerActionWrapper[] actionList2 = cTriggerMatch.ActionList; for (int k = 0; k < actionList2.Length; k++) { TriggerActionWrapper triggerActionWrapper2 = actionList2[k]; if (triggerActionWrapper2 != null) { triggerActionWrapper2.Destroy(); } } } } }
private void OnDestroy() { Singleton <GameEventSys> .instance.RmvEventHandler <DefaultGameEventParam>(GameEventDef.Event_ActorDestroy, new RefAction <DefaultGameEventParam>(this.onActorDestroy)); this._inActorsCache = null; TriggerActionWrapper[] internalActList = this.m_internalActList; for (int i = 0; i < internalActList.Length; i++) { TriggerActionWrapper triggerActionWrapper = internalActList[i]; if (triggerActionWrapper != null) { triggerActionWrapper.Destroy(); } } }