2D cannon not working

I’m trying to make a game with a cannon that shoots fireworks at balloons. I’m having a problem with my cannon though. I know how to make a prefab that will shoot a projectile upwards, but I want my cannon to rotate at the bottom of it and not the center (because then the cannon would get to be upside down). I also want to make it so that the cannon can’t rotate more than 180° so it can’t point into the floor as well as make sure that when I shoot a projectile that it shoots from where the cannon is pointing. So far I’m not sure how to go about rotating the cannon or shoot from where the cannon is pointing but I do know how to rotate the whole cannon as well as shoot the firework itself. Oh one last thing I want to rotate the cannon with the arrow keys and I’m more familiar with C# but I can still read a little javascript.

I’ll take any help possible!

Edit: Sorry for the lack of info. I have an empty GameObject in my cannon which is the child of the cannon and have code that makes the cannon rotate as well as shoots prefabs which are the fireworks.

I’ve tried multiple lines of code to move the prefab (I want it to have mass and a rigidbody so that it can arc and have trajectory) so here’s some of what I tried.

  prefab.rigidbody2D.AddForce(new Vector2(100.0f, 500.0f));
 
  prefab.rigidbody2D.AddForce(new Vector2(0.0f, 1000.0f));

Both of these lines end up with the prefab spawning on the gameobject but then falling back down and I’m not sure why. My mass of my prefab is only 1 and the only way for it to actually move up is by making the gravity scale -1. Could this possibly be because I have unity 4.6 and not 5.0?

Also the same script has my cannon rotate which I use the code

 if (Input.GetKey (turnright)) {
             transform.Rotate(new Vector3(0,0,-2.5f));
         }

to rotate the cannon but it only rotates the cannon from it’s midpoint and not from the end of the cannon, which would be ideal but isn’t necessary.

The cannon problem is really easy to fix. In the inspecor panel for the sprite you can edit the anchor point which is basically the sprite’s pivot point by clicking on Sprite Editor. As for the rigid body problem you need to add “,ForceMode.Impulse” after the vector2.