void SendMsg(Animator animator, string eventStr) { if ("" == eventStr) { return; } if (null != m_AnimCtrl) { m_AnimCtrl.AnimEvent(eventStr); } else { animator.gameObject.SendMessage("AnimatorEvent", eventStr, SendMessageOptions.DontRequireReceiver); } }
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateUpdate(animator, stateInfo, layerIndex); for (int i = 0; i < m_Attacks.Length; i++) { if (m_Attacks[i].active) { if (stateInfo.normalizedTime >= m_Attacks[i].endTime) { m_Attacks[i].active = false; for (int j = 0; j < m_Attacks[i].triggers.Length; j++) { if (null == m_Attacks[i].triggers[j]) { continue; } m_Attacks[i].triggers[j].active = false; m_Attacks[i].triggers[j].ResetHitInfo(); } if (null != m_AnimCtrl) { m_AnimCtrl.AnimEvent("MonsterEndAttack"); } else { animator.gameObject.SendMessage("AnimatorEvent", "MonsterEndAttack", SendMessageOptions.DontRequireReceiver); } } else if (!m_Attacks[i].playAttack && stateInfo.normalizedTime >= m_Attacks[i].startTime) { m_Attacks[i].playAttack = true; for (int j = 0; j < m_Attacks[i].triggers.Length; j++) { if (null == m_Attacks[i].triggers[j]) { continue; } m_Attacks[i].triggers[j].active = true; } } } } }