Hey i still cant fix this thare is an error in the engine that says unknown identefier dontcomecloserange why? I dont know i made a coppy of the first person tut Ai script
var speed = 1.0;
var attackRange = 30.0;
var shootAngleDistance = 10.0;
var target : Transform;
function Start () {
if (target == null && GameObject.FindWithTag("Enemy"))
target = GameObject.FindWithTag("Enemy").transform;
}
function Update () {
if (target == null && GameObject.FindWithTag("Enemy"))
target = GameObject.FindWithTag("Enemy").transform;
if (target == null)
return;
if (!CanSeeTarget ())
return;
// Rotate towards target
var targetPoint = target.position;
var targetRotation = Quaternion.LookRotation (targetPoint - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2.0);
}
function CanSeeTarget () : boolean
{
if (Vector3.Distance(transform.position, target.position) > attackRange)
return false;
var hit : RaycastHit;
if (Physics.Linecast (transform.position, target.position, hit))
return hit.transform == target;
return false;
}
function AttackPlayer () {
var lastVisibleEnemyPosition = target.position;
while (true) {
if (CanSeeTarget ()) {
// Target is dead - stop hunting
if (target == null)
return;
// Target is too far away - give up
var distance = Vector3.Distance(transform.position, target.position);
if (distance > attackRange * 3)
return;
lastVisibleEnemyPosition = target.position;
if (distance > dontComeCloserRange)
MoveTowards (lastVisibleEnemyPosition);
else
RotateTowards(lastVisibleEnemyPosition);
var forward = transform.TransformDirection(Vector3.forward);
var targetDirection = lastVisibleEnemyPosition - transform.position;
targetDirection.y = 0;
var angle = Vector3.Angle(targetDirection, forward);
// Start shooting if close and play is in sight
if (distance < attackRange && angle < shootAngleDistance)
yield StartCoroutine("");
} else {
yield StartCoroutine("SearchEnemy", lastVisibleEnemyPosition);
// Player not visible anymore - stop attacking
if (!CanSeeTarget ())
return;
}
yield;
}
}
function RotateTowards (position : Vector3) {
// Rotate towards target
var targetPoint = target.position;
var targetRotation = Quaternion.LookRotation (targetPoint - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2.0);
}
function MoveTowards (position : Vector3) {
transform.position = Vector3.MoveTowards(transform.position, target.position,speed);
}