/// <summary> /// Atacando al player /// </summary> void Attack() { string tag; //Para que nose mueva mientrass ataca locomotion.moving = false; //Stop Attacking if (distanceToPlayer > cowboyAttack.attackDistance || VisionAngle(out tag) > visionAngle) { currentState = stateAI.wander; Debug.Log("PLayer Out of range! Stop Attaacking"); StopCoroutine(attacking); } }
/// <summary> /// Función llamada en el estado "patrol" /// /// </summary> void Detector() { string tag; //Player Detected! //Si elplayer está en elángulo de visión if (VisionAngle(out tag) < visionAngle && tag == "Player") { Debug.Log("PLayer Detected! Wander"); currentState = stateAI.wander; locomotion.ResetPath(); } else { // Debug.Log("Did not hit"); currentState = stateAI.patrol; } }
/// <summary> /// Persiguiendo al player /// </summary> void Wander() { string tag; //Calculamos la ruta hasta el player e iniciamos el movimiento. locomotion.MoveTo(target); //Distancia de ataque if (distanceToPlayer < cowboyAttack.attackDistance && VisionAngle(out tag) < visionAngle) { Debug.Log("PLayer In range! Attaacking"); currentState = stateAI.attack; //Start Attacking attacking = StartCoroutine(cowboyAttack.Attacking()); } if (distanceToPlayer > visionRange) { currentState = stateAI.patrol; locomotion.MoveToRandomCover(true); } }
//float playerH; //float playerMaxH; #endregion private void Awake() { currentState = stateAI.patrol; }