using UnityEngine; // PlayerStateをAnimator Parameterへ反映する [RequireComponent(typeof(Animator))] [RequireComponent(typeof(PlayerController))] public class PlayerAnimator : MonoBehaviour { private static readonly int IsMovingId = Animator.StringToHash("IsMoving"); private static readonly int IsAttackingId = Animator.StringToHash("IsAttacking"); private static readonly int IsDamagedId = Animator.StringToHash("IsDamaged"); private static readonly int IsDeadId = Animator.StringToHash("IsDead"); private Animator _animator; private PlayerController _playerController; // 必要なコンポーネントを取得する private void Awake() { _animator = GetComponent(); _playerController = GetComponent(); } // PlayerControllerの状態更新後にAnimator Parameterを更新する private void LateUpdate() { var state = _playerController.State; _animator.SetBool( IsMovingId, state == PlayerState.Move); _animator.SetBool( IsAttackingId, state == PlayerState.Attack); _animator.SetBool( IsDamagedId, state == PlayerState.Damage); _animator.SetBool( IsDeadId, state == PlayerState.Dead); } }