Move bullet in the same direction of mouse

Hi i am making a 2D tower-defense game where obviously you have to shoot bullets at enemies. My problem is that when i press the shoot button the bullets get stuck at the spawnpoint.I think this issue is caused by a bad command i wrote.
Here’s the script that handles the spawn and the direction of the bullet. It is attached to the player.

public class inputs : MonoBehaviour {
	public GameObject proi1; //bullet
	public Vector3 mousePos;
	public Vector3 posProi1SX; //position of spawn
	public Vector3 posProi1DX; //position of spawn

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {

		posProi1SX=new Vector3(449.9362f,0.3282555f,0);
		posProi1DX=new Vector3(450.1202f,0.3180127f,0);
		mousePos=Input.mousePosition;
	if(Input.GetMouseButtonDown(0))
		{
			if(mousePos.x<gameObject.transform.position.x)
			{
				transform.rotation=new Quaternion(0,0,0,0);
				Instantiate(proi1,posProi1SX,Quaternion.identity);
			}

			 if(mousePos.x>gameObject.transform.position.x)
			{
				transform.rotation=new Quaternion(0,180,0,0);
				Instantiate(proi1,posProi1DX,Quaternion.identity);

		}
			proi1.transform.position=Vector3.MoveTowards(transform.position,Input.mousePosition,4*Time.deltaTime); //Is this the error??
		}
	}
}

the bullets should move towards the mouse,in the same direction.

What’s wrong?? Please help me i’m stuck in this code by days!!

Your second code would only work if you have an Orthographic camera. Here are some changes to keep it moving:

public float speed = 5.0f;
Vector3 mousePosition;
Vector3 direction;

void Start () {
      mousePosition = Camera.main.ScreenToWorldPoint (Input.mousePosition);
      mousePosition.z = 0.0;
      direction = (mousePosition - transform.position).normalized;
}

void Update () {
     transform.position += direction * speed * Time.deltaTime;
}