- Home /
Projectile not launching from correct place - rotation or positioning issue?
I'm writing a simple 2D game with the Vectrosity extension - okay, it's Asteroids but it'll be greatly expanded later.
I have the ship rotating and moving around the screen nicely. My problem, however, is the projectiles when the player fires a shot. When the ship is at the centre of the screen it's all fine. But when the ship moves, the projectile launch locations are off. The further I get from the middle of the screen, the further the launch locations drift.
In my ship class, I have this to launch the projectile.
void Fire() {
if (Input.GetKeyDown(KeyCode.Space))
{
Vector3 setPos = transform.position;
Quaternion rot = Quaternion.Euler(transform.rotation.eulerAngles);
Instantiate(Projectile, setPos, rot);
}
}
Projectile is a prefab. And in my projectile class there's nothing for setting the actual position of the projectile. The only thing I have which affects its position is this, which is in its Start() function.
rigidbody.AddForce(transform.up * 100f, ForceMode.Impulse);
Like I said, it works fine when the ship is positioned at the centre of the screen but the projectile launch position starts drifting further away from the ship the further the ship moves from the centre. What am I doing wrong?
A wild guess would be to replace "transform.position" with "Vector3.forward" or perhaps "Vector3.one" or some other subValue of it and see what happens.
Your answer
![](https://koobas.hobune.stream/wayback/20220613115123im_/https://answers.unity.com/themes/thub/images/avi.jpg)