void Update() { switch (_state) { case WarriorState.Idle: _state = WarriorState.FindTarget; break; case WarriorState.FindTarget: var target = FindEnemy(); if (target) { _target.SetTarget(target.gameObject); _state = WarriorState.MovingToTarget; _goTo.enabled = true; } break; case WarriorState.MovingToTarget: if (!_target.HasTarget()) { _goTo.enabled = false; _state = WarriorState.Idle; } break; } }