using UnityEngine; public class PlayerAnimationController : MonoBehaviour { private Animator animator; private CharacterController controller; void Start() { animator = GetComponent(); controller = GetComponent(); } void Update() { // 1. 이동 속도 제어 (수평 속도만 계산) // Y축(중력/점프)을 제외한 X, Z축의 속도만 추출하여 MoveSpeed에 전달합니다. Vector3 horizontalVelocity = new Vector3(controller.velocity.x, 0, controller.velocity.z); float currentSpeed = horizontalVelocity.magnitude; // 애니메이터의 MoveSpeed 파라미터 업데이트 (0.1은 보정값) animator.SetFloat("MoveSpeed", currentSpeed > 0.1f ? currentSpeed : 0f); // 2. 점프 및 공중 상태 (isGrounded 활용) // CharacterController가 바닥에 닿아있는지 여부를 직접 전달합니다. animator.SetBool("isGrounded", controller.isGrounded); // 3. 공격 (트리거) if (Input.GetMouseButtonDown(0)) { animator.SetTrigger("Attack"); } // 4. 인터랙션 (트리거) if (Input.GetKeyDown(KeyCode.E)) { animator.SetTrigger("Interact"); } } }