Moving a sprite towards Postion and further

Hi Guys,

im working on a little shootingscript. I want that the bullet is moving to a specific position (where the user clicked) and then further until its destroyed. At the moment its just moving to the click position and after 3 seconds (which is determined in a 2. script) it is destroyed.

So my question: How can i get the bullet move in the direction of the mouseclick and let it move further then the mouseclick position?

Heres my code:

public float speed = 1.5f;
	private Vector3 target;
	private Vector3 clickpos;
	private Vector3 origPos;
	void Start (){
		target = transform.position;
		origPos = transform.position;
	}

	void Update()
	{
		if (Input.GetMouseButtonDown(0))
		{
			target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
			target.z = transform.position.z;
			clickpos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
			target.z = transform.position.z;
		}
		if (this.transform.position == clickpos) {
			this.gameObject.rigidbody.velocity = new Vector2(target.x, target.y);
		} 
		else 
		{
			transform.position = Vector3.MoveTowards (transform.position, target, speed * Time.deltaTime);
		}
		Vector3 moveDirection = gameObject.transform.position - origPos; 
		if (moveDirection != Vector3.zero) 
		{
			float angle = Mathf.Atan2(moveDirection.y, moveDirection.x) * Mathf.Rad2Deg;
			transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
		}

		}

What you need to do is to store the direction of the vector from your starting position to the click position, and then move the bullet in that direction. So something like:

Vector3 target;
bool hasBeenShot;

void Update() {
    if (Input.GetMouseButtonDown(0))
    {
        target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        target.z = transform.position.z;
        direction = target.position - transform.position
        hasBeenShot = true;
    }
    if(hasBeenShot) {
        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);
    }

Hope that helps!