//技能被打断 public void BreakSkill(StateParameter stateParm) { if (null != m_skillDesc && (int)SkillType.SKILL_XUANFANZHAN == m_skillDesc.Get <int>("subtype")) { return; } if (m_bSendAttackEven && m_actor != null) { EventParameter eventBuffParam = EventParameter.Get(); eventBuffParam.intParameter = m_skillID; eventBuffParam.goParameter = m_actor.gameObject; eventBuffParam.objParameter = m_actor; if (m_hitActor != null) { eventBuffParam.goParameter1 = m_hitActor.gameObject; eventBuffParam.objParameter1 = m_hitActor; } CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_EVENT_ATTACK, eventBuffParam); m_bSendAttackEven = false; } CancelInvoke("AutoLookatTarget"); CancelInvoke("HideSelf"); CancelInvoke("CastSkill"); CancelInvoke("SkillEnd"); CancelInvoke("Start"); SkillIsOver(); //清除skill所有的skillcell for (int i = 0; i < m_skillCellObjectlist.Count; ++i) { m_skillCellObjectlist[i].SetActive(false); } DestroyEfx(); if (stateParm != null) { //死亡,被击状态,删除对应的特效 if (stateParm.state == ACTOR_STATE.AS_DEATH || stateParm.state == ACTOR_STATE.AS_BEHIT) { if (m_actionEfx != null) { m_actionEfx.DestoryObject(); } SendEvent(SkillCellEventType.SE_DESTROY_ACTION_EFX, null); } } CoreEntry.gGameObjPoolMgr.Destroy(this.gameObject); }
//接受事件 public override void OnEvent(SkillCellEventType eventType, params ValueArg[] valueArgs) { switch (eventType) { case SkillCellEventType.SE_DESTROY_ACTION_EFX: { if (m_actionEfx != null) { m_actionEfx.DestoryObject(); m_actionEfx = null; } } break; default: break; } }