Okay I have a script when you in the line of sight he will follow you, I am also using Nav Mesh.
What is want to do is, if the Enemy cannot see the player anymore I want it to look around for a certain amount of time then go back to its starting point.
var walkSpeed = 3;
var rotationSpeed : float = 3;
var runningSpeed : float = 6;
var player : GameObject;
var myTransform : Transform;
var target : Transform;
var fieldOfView : float = 50;
var rayRange : float = 10;
var distanceToStopRunning : float = 10;
var distanceToStopMoving : float = 3;
var detectFromBehind : float = 2;
var sneakingBehind = false;
var chasing = false;
function Awake(){
myTransform = transform;
}
function Update(){
var hit : RaycastHit;
var rayDirection = player.transform.position - transform.position;
var distanceToPlayer = Vector3.Distance(transform.position, player.transform.position);
//Checks if to see if player is infront
if((Vector3.Angle(rayDirection, transform.forward)) < fieldOfView){
if(Physics.Raycast (transform.position, rayDirection, hit, rayRange)){
if(hit.transform.tag == "Player"){
Debug.Log("Can see you MF");
lookingAt = true;
}
}
}
if(lookingAt == true){
chasing = true;
}
if(chasing == true){
GetComponent(NavMeshAgent).destination = target.position;
if(lookingAt == false){
}
}
}
function OnDrawGizmosSelected(){
Gizmos.color = Color.green;
Gizmos.DrawRay (transform.position, transform.forward * rayRange);
}
Thanks for the help.