Shinobi Life Online

Art Category => Programming => Topic started by: Kakashi Natsu on August 11, 2016, 02:34:07

Title: Chase Script actual code c#
Post by: Kakashi Natsu on August 11, 2016, 02:34:07
it goes haywire when it comes incontact with two players.
Modified(Edited code): enemy now goes unhuman speeds when he moves to the player, then he just stops..., moves out of his trigger box, moves back in again normal then it speeds up.

@Vreg

Code: [Select]
void OnTriggerEnter(Collider other){ //this will check what has entered the trigger


if (playerchosen) {

} else {
if (other.gameObject.tag == "Player") {
print ("player found");
playerchosen = true;
Player = other.gameObject;
}

}
print ("Player Chosen: " +playerchosen);

}
void OnTriggerStay(Collider other){

if (playerchosen) {
Vector3 direction = Player.transform.position - this.transform.position;
Quaternion rotation = Quaternion.LookRotation (direction);
if (rotation.x != 0) {
rotation.x = 0;
}
if (rotation.z != 0) {
rotation.z = 0;
}
this.transform.rotation = Quaternion.Slerp (this.transform.rotation,
rotation, Time.deltaTime + damping);

if (Vector3.Distance (Player.transform.position, this.transform.position) < 15) {
anim.SetBool ("IsIdle", false);
if (direction.magnitude > 1) {
this.transform.Translate (0, 0, 0.1f);
anim.SetBool ("IsWalking", true);
anim.SetBool ("IsAttacking", false);
} else {
anim.SetBool ("IsAttacking", true);

if (canAttack) {
print ("Before invoke");
canAttack = false;
Invoke ("waiting", 2f);
print ("After invoke");
} else {

}
anim.SetBool ("IsWalking", false);
}

} else {


}

} else {
playerchosen = false;


}

print ("Player Chosen: " +playerchosen);
}

void OnTriggerExit(Collider other){ //this will check what has left the trigger

if (other.gameObject.tag != "Player") {//if the game object that left was not a player

playerchosen = true;
} else {

anim.SetBool ("IsWalking", false);
playerchosen = false;
print ("Player left");
}
print (playerchosen);
}