// Update is called once per frame void FixedUpdate() { if (!currentState.Equals(AIStateType.Feeding) && !feeding && coroutinePatrolEnded) { hungry -= hungry_time; if (hungry < 0) { hungry = 0; } if (hungry < 0.1f && !currentState.Equals(AIStateType.Alerted) && !currentState.Equals(AIStateType.Attack)) { currentState = AIStates.Feeding; } } else if (feeding && coroutinePatrolEnded) { hungry += hungry_time * 50; Debug.Log("Hungry Level = " + hungry); if (hungry >= 90f && !currentState.Equals(AIStateType.Alerted) && !currentState.Equals(AIStateType.Attack)) { Debug.Log("ENTRO IF FEEDING UPDATE"); setAnimatorParameters("Feeding_bool", false); hungry = 100; currentState = AIStates.Patrol; seeking_food = false; feeding = false; StartCoroutine(wait()); } } checkStateBehaviour(); }
// Update is called once per frame public void FixedUpdate() { if (currentState == AIStates.Dead) { return; } //Si no está en alerta o attaque accede aquí así restamos si tiene hambre if (!currentState.Equals(AIStates.Alerted) && !currentState.Equals(AIStates.Attack) && !currentState.Equals(AIStates.Peace)) { //coroutinePatrolEnded indica si las coroutines han terminado así no mezclamos animaciones ni estados durante las animaciones if (!currentState.Equals(AIStates.Feeding) && !feeding && coroutinePatrolEnded) { hungry -= hungry_time; if (hungry < 0) { hungry = 0; } if (hungry < min_hungry) { currentState = AIStates.Feeding; } } //si está comiendo restauramos el hambre a 100 y volvemos al estado Patrol else if (feeding && coroutinePatrolEnded) { hungry += hungry_time * 50; if (hungry >= 90f && !currentState.Equals(AIStates.Alerted) && !currentState.Equals(AIStates.Attack)) { Debug.Log("ENTRO IF FEEDING UPDATE"); setAnimatorParameters("Feeding_bool", false); hungry = 100; currentState = AIStates.Patrol; seeking_food = false; feeding = false; StartCoroutine(wait()); } } } //chequeamos los estados aunque en realidad solo dos estados aquí los demás estados se activan por eventos // de los colliders VISION Y ATTACK_COLLIDER checkStateBehaviour(); }