Limiting rotatioal speed for targeting

Hello,

I’m trying to get an enemy to have a limited rotational speed so that the accuracy of the enemy isn’t always perfect. as of right now I’m using the following code to target the player.

transform.LookAt(target);

The Problem with this is the enemy is always looking at the player so the only way to make it miss is by moving faster than the projectile. I’m new to coding so I’m not even really sure where to begin. Bellow is all the code, don’t be surprised if their are mistakes.

var target : Transform; // The player

var safeDistance = 3000; //How close the player can get

var Pulse : Rigidbody;

public var Clone;

private var ReadyToFire : boolean = true;

function Update()

{

//look at the target

transform.LookAt(target);

//check how close the player is

var distanceToPlayer = Vector3.Distance(this.transform.position, target.transform.position);

// this checks to see if the player is too close then runs the fire function

if(distanceToPlayer <= safeDistance)

{

PAUSE();

}

}

function PAUSE()

{

if(ReadyToFire)

{

   ReadyToFire = false;

   Fire();

   resetReadyToFire();

}

}

function resetReadyToFire()

{

yield WaitForSeconds(1);

ReadyToFire = true;

}

//fire function

function Fire()

{

//projectile code

var Clone : Rigidbody = Instantiate(Pulse, transform.position, transform.rotation);

}

Here’s an easy rotation mechanism for rotating around based on a maxspeed:

  var maxAngularSpeedDegrees : float;
  function RotateTowardsTarget(target : Transform) {
         targetRot = Quaternion.LookRotation( target.position - transform.position);
         transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRot , maxAngularSpeedDegrees * Time.deltaTime);
  }