// OnStateEnter is called before OnStateEnter is called on any state inside this state machine
 //override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
 //
 //}
 // OnStateUpdate is called before OnStateUpdate is called on any state inside this state machine
 //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
 //
 //}
 // OnStateExit is called before OnStateExit is called on any state inside this state machine
 public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (stateInfo.IsTag("Attack"))
     {
         animator.SendMessageUpwards("AttackAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
     else if (stateInfo.IsTag("LongAttack"))
     {
         animator.SendMessageUpwards("LongAttackAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
     else if (stateInfo.IsTag("ConeAttack"))
     {
         animator.SendMessageUpwards("ConeAttackAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
     else if (stateInfo.IsTag("Bite"))
     {
         animator.SendMessageUpwards("BiteAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
     else if (stateInfo.IsTag("SwingOpen"))
     {
         Debug.Log("upwards " + animator);
         animator.SendMessageUpwards("SwingOpenAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
     else if (stateInfo.IsTag("SwingClose"))
     {
         Debug.Log("upwards " + animator);
         animator.SendMessageUpwards("SwingCloseAnimationComplete", SendMessageOptions.DontRequireReceiver);
     }
 }
 // OnStateExit is called before OnStateExit is called on any state inside this state machine
 public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (sendTo == Option.selfOnly)
         animator.SendMessage(messageName, _require);
     else if (sendTo == Option.selfAndParent) {
         animator.SendMessage(messageName, _require);
         if (animator.transform.parent)
             animator.transform.parent.SendMessage(messageName, _require);
     } else if (sendTo == Option.parentOnly) {
         if (animator.transform.parent)
             animator.transform.parent.SendMessage(messageName, _require);
     } else if (sendTo == Option.upwards)
         animator.SendMessageUpwards(messageName, _require);
 }