public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (this.mLocalMotion == null) return; if (this.mCallBackFrameQueue.Count > 0) { StateCallBackFrame peekFrame = this.mCallBackFrameQueue.Peek(); if (stateInfo.normalizedTime >= peekFrame.mFrameSecs) { this.mLocalMotion.OnBehaviourCallBack(this.mCallBackFrameQueue.Dequeue()); } } }
public void OnBehaviourCallBack(StateCallBackFrame callFrameData) { if (callFrameData.mType == FrameParamType.JumpReady) { this.mMotion.y = this.mJumpData.CurJumpStrength; this.mPlayer.OnReadyJump(); } else if (callFrameData.mType == FrameParamType.BeginFalling) { this.mPlayer.OnBeginFalling(); } else if (callFrameData.mType == FrameParamType.Attack) { this.BeginAttack(); } else if (callFrameData.mType == FrameParamType.HoldingAttack) { this.BeginHoldingAttack(); } }