protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // Move float moveSpeed = data.playerInfo.moveSpeed.EvaluateEx(data.inputData.joyStickMove.x); cc.Move(moveSpeed, 0, 0); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // 移动 animator.SetFloat(AnimParamConstans.STATE_RUNSPEED, data.inputData.joyStickMove.x); // 起跳 if (SetTrigger(AnimParamConstans.STATE_JUMP, data.inputData.isJumpDown, animator)) { return; } // 滑铲 if (SetTrigger(AnimParamConstans.STATE_SLIDE, data.inputData.isFireing, animator)) { return; } if (SetBool(AnimParamConstans.STATE_IN_AIR, !data.ccData.isGrounded, animator)) { return; } // 无输入 animator.SetBool(AnimParamConstans.STATE_IDLE, !data.inputData.isJoyStickHold); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { float jumpSpeed = data.playerInfo.jumpSpeed.Evaluate(stateInfo.normalizedTime); Vector3 current = data.ccData.velocity; cc.Move(new Vector3(MathHelper.MaxAbs(startJumpSpeed, current.x), jumpSpeed, 0), false); }
protected override void StartState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.StartState(data, cc, animator, stateInfo, layerIndex); Vector3 current = data.ccData.velocity; current = current.SetY(data.playerInfo.jumpSpeed.Evaluate(1) * data.ccData.bouncingFactor); cc.Move(current, false); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { float slideV = data.playerInfo.slideSpeed.Evaluate(Mathf.Lerp(startTime, endTime, stateInfo.normalizedTime)); Vector3 currentV = data.ccData.velocity; currentV.x = Math.Sign(cc.GetDirection().x) * slideV; cc.Move(currentV); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // change visual face float moveSpeed = data.ccData.velocity.x; if (moveSpeed > 0) { cc.SetDirection(Vector3.right); } else if (moveSpeed < 0) { cc.SetDirection(Vector3.left); } }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // 移动 animator.SetFloat(AnimParamConstans.STATE_RUNSPEED, data.inputData.joyStickMove.x); // 二段跳 if (SetTrigger(AnimParamConstans.STATE_JUMP_2ND, data.playerInfo.canSecondJump && data.inputData.isJumpDown, animator)) { return; } // 弹簧 if (SetTrigger(AnimParamConstans.STATE_BOUNCING, data.ccData.isBouncing, animator)) { return; } // 落地 animator.SetBool(AnimParamConstans.STATE_IN_AIR, !data.ccData.isGrounded); }
// 更新状态 protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (mIsPlaySpecial && stateInfo.normalizedTime >= 1) { SetAsNormalIdleAnim(animator, stateInfo.normalizedTime); } if (!mIsPlaySpecial && stateInfo.normalizedTime > mWaitTime) { TriggerSpecialAnim(animator, stateInfo, layerIndex); } // change visual face float moveSpeed = data.ccData.velocity.x; if (moveSpeed > 0) { cc.SetDirection(Vector3.right); } else if (moveSpeed < 0) { cc.SetDirection(Vector3.left); } }
/// <summary> /// Update 只有在当前 Clip 是自己的时候才会调用 /// </summary> protected abstract void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex);
protected override void StartState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.StartState(data, cc, animator, stateInfo, layerIndex); mDataCollector.Collect(); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { mDataCollector.Collect(); }
protected override void StartState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.StartState(data, cc, animator, stateInfo, layerIndex); startJumpSpeed = data.playerInfo.moveSpeed.EvaluateEx(data.inputData.joyStickMove.x) / 2; }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { cc.Move(data.ccData.velocity); }
protected override void UpdateState(RuntimeMoveData data, RoninController characterController, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("Update State " + stateInfo.fullPathHash); }
protected override void StartState(RuntimeMoveData data, RoninController characterController, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.StartState(data, characterController, animator, stateInfo, layerIndex); Debug.Log("Enter State " + stateInfo.fullPathHash); }
protected override void UpdateState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Vector3 current = data.ccData.velocity; cc.Move(new Vector3(0, current.y, 0)); }
// 进入状态,这个函数只会在从其他状态进入本状态时被调用 protected override void StartState(RuntimeMoveData data, RoninController characterController, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.StartState(data, characterController, animator, stateInfo, layerIndex); SetAsNormalIdleAnim(animator, 0); }
/// <summary> /// Start 反复重入时不会反复调用 /// </summary> protected virtual void StartState(RuntimeMoveData data, RoninController cc, Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { }