private void ControlledMove(CharacterControl control, Animator animator, AnimatorStateInfo stateInfo) { if (control.MoveLeft && control.MoveRight) { animator.SetBool(TransitionParameter.Move.ToString(), false); return; } if (!control.MoveLeft && !control.MoveRight) { animator.SetBool(TransitionParameter.Move.ToString(), false); return; } if (control.MoveRight) { if (!CheckFront(control)) { control.MoveForward(speed, speedGraph.Evaluate(stateInfo.normalizedTime)); } } if (control.MoveLeft) { if (!CheckFront(control)) { control.MoveForward(speed, speedGraph.Evaluate(stateInfo.normalizedTime)); //control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); } } CheckTurn(control); }
private void ConstantMove(CharacterControl control, Animator animator, AnimatorStateInfo stateInfo) { if (!CheckFront(control)) { // control.transform.Translate(Vector3.forward * speed * speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); control.MoveForward(speed, speedGraph.Evaluate(stateInfo.normalizedTime)); } }
private void UpdateMomentum(CharacterState characterState, Animator animator, AnimatorStateInfo stateInfo) { CharacterControl control = characterState.GetCharacterControl(animator); if (control.MoveRight) { control.animationProgress.AirMomentum += speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime; } if (control.MoveLeft) { control.animationProgress.AirMomentum -= speedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime; } if (Mathf.Abs(control.animationProgress.AirMomentum) >= maxMomentum) { if (control.animationProgress.AirMomentum > 0f) { control.animationProgress.AirMomentum = maxMomentum; } else if (control.animationProgress.AirMomentum < 0f) { control.animationProgress.AirMomentum = -maxMomentum; } } if (control.animationProgress.AirMomentum > 0f) { control.FaceForward(true); } else if (control.animationProgress.AirMomentum < 0f) { control.FaceForward(false); } if (!CheckFront(control)) { control.MoveForward(speed, Mathf.Abs(control.animationProgress.AirMomentum)); } }