Problem firing projectile at mouse location

The gist is I’m trying to fire a bullet on a mouse click, at the cursor.

The code i’m using is:

if(Input.GetMouseButtonDown(0)) {
	Vector3 clickPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
	GameObject projectile = Instantiate(bullet, transform.position, Quaternion.identity) as GameObject;
	projectile.transform.LookAt(clickPosition);
	projectile.GetComponent<Rigidbody>().velocity = projectile.transform.forward * BulletSpeed;
}

This takes place in a 3d environment played in 2d, so I only need the bullet to move along the x & y axes. The problem i’m having is if you imagine the screen as a plane, the bullet only ever travels in the first quadrant. If I fire to the left, the bullet travels almost straight up. If i fire downward the bullet travels directly right, If I shoot upwards it travels at near a 45 degree angle.

I’m sure I’m overlooking something simple, but I can’t seem to figure out what.

Thanks in advance!

So this is the method I am using. First I have the parent object turning towards the mouse cursor and then I simply spawn a bullet object facing that same direction, give it force forward, and then send it on its way.

using UnityEngine;
using Systems.Collections;

public class PlayerController : Monobehaviour
{
    public float speed;
    
    void FixedUpdate()
    {
        var mousePosition = Camera.main.ScreenToWorldPoint (Input.mousePosition);
        Quaternion rot = Quaternion.LookRotation(transform.position - mousePosition, Vector3.forward);
        transform.rotation = rot;
        transform.eulerAngles = new Vector3(0, 0, transform.eulerAngles.z);
        rigidbody2D.angularVelocity = 0;
        
        float input = Input.GetAxis("Vertical");
        rigidbody2D.AddForce(gameObject.transform.up * speed * input);
    }

    void Update()
    {
        if (Input.GetButtonDown("FIre1"))
        {
            Rigidbody2D clone = Instantiate(bullet, gun.transform.position, gun.transform.rotation);
            clone.GetComponent<Rigidbody2D>().AddForce(transform.up * bulletSpeed); // Use transform.forward for 3D?
        }
    }
}