Fired object won't move

Hello, I’ve been looking all morning through similar posts but I haven’t found a solution.

I’m trying to setup a simple 2D cannon firing a projectile across XY space. My problem is the projectile appears, but just drops down in front of the cannon. Here is my code:

var fireBall : GameObject;
var shootPoint : Transform;
var speed = 10000;
   
function Update (){

        if(Input.GetKeyDown("space")){
   		Instantiate(fireBall, shootPoint.position, transform.rotation);
   
		fireBall.rigidbody.AddForce(transform.right * speed);
     }
}

I’ve tried transform.forward instead of .right and get the same result. My fireBall has a rigidbody with PosZ, RotX and Y locked. Thanks.

I am so sure about this one. But I think there is a solution.

 if(Input.GetKeyDown("space")){

       var bullet = Instantiate(fireBall, shootPoint.position, transform.rotation);

       bullet.rigidbody.AddForce(transform.right * speed);

 }

The thing is you need to tell the script that you want to add force to a specific object. (I think). So, we make another var to specify the object which is just instantiated. Well, I hope this helps.

I would personally just attach a script for the projectile to move forward on update(right in your case I would imagine) instead of adding a force to their rigid body.

When the “fireball” gets instantiated, the “transform.rotation” would make the fireball to have the same rotation as the cannon that you are aiming with. making it fire “forward” if the cannon is rotating correct.

Good Luck!