using UnityEngine; // EnemyStateをAnimator Parameterへ反映する [RequireComponent(typeof(Animator))] [RequireComponent(typeof(EnemyController))] public class EnemyAnimator : 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 EnemyController _enemyController; // 必要なコンポーネントを取得する private void Awake() { _animator = GetComponent(); _enemyController = GetComponent(); } // EnemyControllerの状態更新後にAnimator Parameterを更新する private void LateUpdate() { var state = _enemyController.State; _animator.SetBool( IsMovingId, state == EnemyState.Move); _animator.SetBool( IsAttackingId, state == EnemyState.Attack); _animator.SetBool( IsDamagedId, state == EnemyState.Damage); _animator.SetBool( IsDeadId, state == EnemyState.Dead); } }