Projectiles

So, i copied a script of someone on youtube. But since he was using an earlier version of Unity i changed some things. As far as I copied his script my projectile should be flying across the screen and destroying itself when it leaves the screen so theres not a huge pile of projectiles. But instead, the projectile appears in front of the player and immediately destroys itself. 1st Problem is as i just mentioned and 2nd Problem is, that the projectiles side doesnt change, so if you look to the left the projectile still gets shot to the right since thats where the firepoint is placed (to the left of the player).
The firepoint is supposed to turn when the player does but i don’t know how to do that (In the video the firepoint turned for him but it doesn’t for me). If I left any information out that’s important to know, to fix the problem, please tell me!
Script:

{public float speed;

// Use this for initialization
void Start () {
	
}

// Update is called once per frame
void Update () {
	GetComponent<Rigidbody2D>().velocity = new Vector2 (speed, GetComponent<Rigidbody2D>().velocity.y);
}

void OnTriggerEnter2D(Collider2D other)
{
	Destroy (gameObject);
}

}

@Powerpuncher500 OK, I find what is the problem about the movement (it happens to me some time ago), there is two ways to move an object, the first it’s using global directions (scene or global pivot X,Y,Z) and the other it’s using the transform direction or rigidbody direction (object local pivot X,Y,Z).

What I’m talking about?, you are using the velocity to move your projectiles, this way you are influencing it in a global way (scene view), instead that use the Rigidbody.transform.forward (object local), this way it moves in the right direction (could be left, right, up or down on 2D say it in other words Vector.left, Vector.right, Vector.up or Vector.down), here is a simple example using the transform.forward:

//Setting the Rigidbody Velocity to move it using the Z local axis.
void FixedUpdate () {
    rb.velocity = transform.forward * velocity;
}

About the instant dead, it’s about the OnTriggerEnter, you don’t define any filter to avoid the detection of the player collider (may be it touch it lightly), you need to set a pair of conditionals to define the action depending of which object (trigger) has been touched, something like this:

void OnTriggerEnter (Collider other) {
   if (other.tag == "Some Tag") {
        //Here goes your action code;
    }

    if (other.tag == "Some other Tag") {
        //Her goes other action code;
    }
}

Check this two things and let me know the result after modifying them, cheers.