I’m using my modified version of TornadoTwins turret script. The problem is, no matter which way the turret faces. It always shoots along the Z axis. So even when it’s facing me, it shoots straight, not at me. Here’s the turret script:
var LookAtTarget : Transform;
var damp : float = 6.0;
var bulletPrefab : GameObject;
var savedTime = 0;
function Update ()
var rotate = Quaternion.LookRotation(LookAtTarget.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotate, Time.deltaTime * damp);
var seconds : int = Time.time;
var oddeven = (seconds % 2);
var bullet = Instantiate(bulletPrefab,transform.Find("spawnPoint").transform.position , Quaternion.identity);
What I’m imagining happening is that after you instantiate your bullet prefab, you should rotate it so it’s rotation matches that of the turret… then when you apply your movement code in your Bullet script, you would simply translate (or add force) in the local positive z axis (transform.forward).
Either that or you’re applying your movement in world space, when you should be moving z forward in local space. Kind of hard to tell without the movement code for the bullet.
Your turret script creates bullets at the location of a child transform called “spawnPoint”, but all bullets will be facing the same direction. There is also no code in there to make the bullets move.
I suspect your bullet script has the movement code, and will cause them to move forwards. In which case, you need to have the bullets oriented to face the correct direction when you instantiate them.
Try replacing the “Quaternion.identity” part of the Instantiate line in your Shoot function with “transform.rotation” to give the bullets you create the same rotation as your turret.