- Home /
Enemy rotation issues - Javascript
In the game that I'm currently making, my enemy is supposed to fly towards the player and follow them. I've got the ability for the enemies to follow the player, but when they turn, they're turning on an alternate axis than what I want and they're rotating on the screen and causing issues with how they look. I've attached a screenshot which details a little more the issue that I'm having. If you look at the screenshot, you'll see that the blue enemy looks quite odd because technically his character is turning towards the player, but the entire body of the enemy is turning, which is what I do not want. What I want is for the enemies to stay "flat" on the screen but "turn" and look at the player and fly towards them instead of completely turning the entire character body. How can I fix this? Here's the script for moving the enemies
#pragma strict
var myRigid : Rigidbody ;
var myTrans : Transform ;
var speed : float = 20f ;
var target : Transform ;
var forceMode : ForceMode ;
private var dir : Vector3;
function Start()
{
target = GameObject.FindWithTag("Player").transform ;
myRigid = this.rigidbody ;
myTrans = this.transform ;
}
function Update () {
if(gameObject.name == "Enemy_Pink(Clone)") {
if(target){
dir = target.position - myRigid.position;
dir.Normalize();
myTrans.rotation = Quaternion.Slerp(myTrans.rotation, Quaternion.LookRotation(dir), speed * Time.deltaTime);
//myRigid.constraints = RigidbodyConstraints.FreezePosition;
}
}
if(gameObject.name == "Enemy_Blue(Clone)") {
if(target){
dir = target.position - myRigid.position;
dir.Normalize();
myTrans.rotation = Quaternion.Slerp(myTrans.rotation, Quaternion.LookRotation(dir), speed * Time.deltaTime);
//myRigid.constraints = RigidbodyConstraints.FreezePosition;
}
}
if(gameObject.name == "Enemy_Red(Clone)") {
if(target){
dir = target.position - myRigid.position;
dir.Normalize();
myTrans.rotation = Quaternion.Slerp(myTrans.rotation, Quaternion.LookRotation(dir), speed * Time.deltaTime);
//myRigid.constraints = RigidbodyConstraints.FreezePosition;
}
}
}
function FixedUpdate() {
myRigid.AddForce(myTrans.forward * speed, forceMode);
}