public override void UpdateAbility(CharacterState characterState, Animator animator, AnimatorStateInfo stateInfo) { CharacterControl control = characterState.GetCharacterControl(animator); if (stateInfo.normalizedTime >= CheckTime) { if (IsGrounded(control)) { animator.SetBool(TransitionParameter.Grounded.ToString(), true); } else { animator.SetBool(TransitionParameter.Grounded.ToString(), false); } } }
public override void UpdateAbility(CharacterState characterState, Animator animator, AnimatorStateInfo stateInfo) { CharacterControl control = characterState.GetCharacterControl(animator); if (control.jump) { animator.SetBool(TransitionParameter.Jump.ToString(), true); } if (VirtualInputManager.Instance.moveRight) { animator.SetBool(TransitionParameter.Move.ToString(), true); } if (VirtualInputManager.Instance.moveLeft) { animator.SetBool(TransitionParameter.Move.ToString(), true); } }
bool IsGrounded(CharacterControl control) { if (control.rb.velocity.y > -0.001f && control.rb.velocity.y <= 0f) { return(true); } if (control.rb.velocity.y < 0f) { foreach (GameObject o in control.BottomSpheres) { Debug.DrawRay(o.transform.position, -Vector3.up * 0.7f, Color.yellow); RaycastHit hit; if (Physics.Raycast(o.transform.position, -Vector3.up, out hit, Distance)) { return(true); } } } return(false); }
public override void UpdateAbility(CharacterState characterState, Animator animator, AnimatorStateInfo stateInfo) { CharacterControl control = characterState.GetCharacterControl(animator); if (control.jump) { animator.SetBool(TransitionParameter.Jump.ToString(), true); } if (control.moveRight && control.moveLeft) { animator.SetBool(TransitionParameter.Move.ToString(), false); return; } if (!control.moveRight && !control.moveLeft) { animator.SetBool(TransitionParameter.Move.ToString(), false); return; } if (control.moveRight) { control.transform.rotation = Quaternion.Euler(0f, 0f, 0f); if (!CheckFront(control)) { control.transform.Translate(Vector3.forward * Speed * SpeedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); } } if (control.moveLeft) { control.transform.rotation = Quaternion.Euler(0f, 180f, 0f); if (!CheckFront(control)) { control.transform.Translate(Vector3.forward * Speed * SpeedGraph.Evaluate(stateInfo.normalizedTime) * Time.deltaTime); } } }
private void Awake() { characterControl = this.gameObject.GetComponent <CharacterControl>(); }