EnemyAI Question

Hello I'm making a Top-down game and I've got an EnemyAI script for a spaceship. The script is supposed to make it so if the player comes within 20 meters of the player then it chases the player but then when it comes within 10 meters of the player it stops and looks at the player. this is what I've tried

var victim : Transform;
var speed : int = 3;
var rotationSpeed : int = 4;

function Update () {
    var dist = Vector3.Distance(victim.position, transform.position);
    target = victim;

    if(dist < 10){
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position - transform.position),rotationSpeed * Time.deltaTime);
    }
    else{
        if(dist < 20){
            transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position - transform.position),rotationSpeed * Time.deltaTime);
            transform.position += transform.forward * speed * Time.deltaTime;
        }
    }
}

but it keeps chasing the player when it comes within 10 meters. Can someone help please.

Thanks.

1 Answer

1

just a quick fix one your code here. This should work, it doesn't compile errors but havn't had a chance to try it. Give it a go tell me if there is any problems.

var victim : Transform;
var speed : int = 3;
var rotationSpeed : int = 4;

function Update ()
{
    var dist = Vector3.Distance(victim.position, transform.position);
    target = victim;

    if(dist <= 10)
    {
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position - transform.position),rotationSpeed * Time.deltaTime);
    }
    if (dist <= 20 && dist >= 11)
    {
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position - transform.position),rotationSpeed * Time.deltaTime);
        transform.position += transform.forward * speed * Time.deltaTime;
    }
}

what would this look like in c#