public void OnMsg(EMsg msg, params object[] args) { switch (msg) { #if USE_TRIGGER_FOR_SKILL case EMsg.View_Model_AttachJoint: GameObject injuredBuild = args[0] as GameObject; PETrigger.AttachTriggerEvent(injuredBuild, OnColliderEnter, null, null); break; case EMsg.View_Model_DeatchJoint: GameObject injuredDestroy = args[0] as GameObject; PETrigger.DetachTriggerEvent(injuredDestroy, OnColliderEnter, null, null); break; case EMsg.View_Model_Build: Profiler.BeginSample("View_Model_Build_SkAlive"); GameObject modelBuild = args[0] as GameObject; PETrigger.AttachTriggerEvent(modelBuild, OnColliderEnter, null, null); Profiler.EndSample(); break; case EMsg.View_Model_Destroy: GameObject modelDestroy = args[0] as GameObject; PETrigger.DetachTriggerEvent(modelDestroy, OnColliderEnter, null, null); break; #endif case EMsg.State_Revive: DispatchReviveEvent(); SetAutoBuffActive(true); isDead = false; break; } }
public virtual void OnDestroy() { if (bufferEffect != null) { ShiftEffect(); } PETrigger.DetachTriggerEvent(gameObject, OnColliderEnter, null, null); s_Projectiles.Remove(this); }