I have this code: The target is a object with the tag named enemy Code (CSharp): if (target) { if(target.gameObject.tag == "enemy") { // Rotate object to the target Vector3 relativePos = target.position - transform.position; Quaternion rotation = Quaternion.LookRotation (relativePos); ball.transform.rotation = rotation; } if(Time.time >= nextFireTime ) { FireProjectile(); } } I dont know why but the code was ment to just rotate the object, see the result in the video:
This is probably because you have a non-uniform scale on some parent to the turret. edit: What hpjohn said ^^
I assume "ball" is the object rotating? You need to set the scale of Turret and base to (1, 1, 1) If base needs to be scaled, you will have to put ball directly under Turret, not as a child to base.