// Update is called once per frame void Update() { #if UNITY_EDITOR current = _sm.currentState; #endif if (Disarmed) { if (_currentDisarmedTime > 0) { _currentDisarmedTime -= Time.deltaTime; } else if (_currentDisarmedTime <= 0) { Disarmed = false; _sm.Feed(ShieldEnemyStates.think); } } //Condición de muerte, Update de Sight, FSM y Rotación. if (IsAlive) { sight.Update(); if (LookTowardsPlayer && _targetDetected) { transform.forward = Vector3.Lerp(transform.forward, sight.dirToTarget, _rotationLerpSpeed * Time.deltaTime); } _sm.Update(); } else if (_sm.currentState != ShieldEnemyStates.dead) { _sm.Feed(ShieldEnemyStates.dead); } }
public void SetState(ShieldEnemyStates nextState) { _sm.Feed(nextState); }