- Home /
Question by
Velketor · Mar 31, 2014 at 07:40 PM ·
variableenemyrandomizemove speed
How can I randomize the speed of enemy movement?
How can I edit the following script so my enemies follow the player at a random "moveSpeed" between 5 and 10?
var target = GameObject.Find("aggro").transform; //the enemy's target
var moveSpeed = 10; //move speed
var rotationSpeed = 5000; //speed of turning
var myTransform = this.transform; //current transform data of this enemy
function Update () {
target = GameObject.FindWithTag("aggro").transform; //target the player
myTransform = this.transform;
//rotate to look at the player
this.myTransform.rotation = Quaternion.Slerp(this.myTransform.rotation,
Quaternion.LookRotation(target.position - this.myTransform.position), rotationSpeed*Time.deltaTime);
//move towards the player
this.myTransform.position += this.myTransform.forward * moveSpeed * Time.deltaTime;
}
Comment
Answer by smirlianos · Mar 31, 2014 at 07:48 PM
add this:
function Start() {
moveSpeed = Random.Range(5,10); //the moving speed is chosen randomly between 5 and 10
}
Worked perfectly. Thank you so much! Fully updated script below:
var target = GameObject.Find("aggro").transform; //the enemy's target
//var moveSpeed = Random.Range(0, 10); //move speed
var moveSpeed : int = Random.Range(5,10);
var rotationSpeed = 5000; //speed of turning
var myTransform = this.transform; //current transform data of this enemy
function Start() {
moveSpeed = Random.Range(5,10); //the moving speed is chosen randomly between 5 and 10
}
function Update () {
target = GameObject.FindWithTag("aggro").transform; //target the player
myTransform = this.transform;
//rotate to look at the player
this.myTransform.rotation = Quaternion.Slerp(this.myTransform.rotation,
Quaternion.LookRotation(target.position - this.myTransform.position), rotationSpeed*Time.deltaTime);
//move towards the player
this.myTransform.position += this.myTransform.forward * moveSpeed * Time.deltaTime;
}
Answer by djfatsteve2 · Mar 31, 2014 at 07:49 PM
change var moveSpeed = 10; //move speed
to
var moveSpeed : int = Random.Range(5,10);