title: Firing Projectiles in the same direction as my character is looking. [UNITY 2D TOPDOWN]
body: <p>I've searched through a bunch of posts on Top Down 2D rotation with firing missiles and none of them apply to mine.</p>
  
  <p>My Wizard manages to fire his magicmissiles from his wand but they come out unaligned with his wands direction. <img src="https://i.stack.imgur.com/of0lY.png" alt="Examples"> It should be taking the Z value from the Quaternion of the wand and assigning that as the angle it goes out in ( or atleast thats what i believe it should be doing) But it seems to rotate faster than the wand and whilst it does change if I spin it isn't changing equally with the wand. So whilst if I point up it will fire up. If i point 45 degrees right of that it fires the missile directly into my wizard.</p>
  
  <p>The Code for the MissileMovement ---------------</p>
  
  <pre><code>using UnityEngine;
  using System.Collections;
  
  public class MoveMissile : MonoBehaviour {
  
  // Use this for initialization
  
  public float speed = 0.5F;
  public Transform Shotspawn;
  // public Quaternion Direction;
  private float Direction;
  void Start (){
  
      // Sets the direction that shot is fired in.
      Direction = transform.rotation.eulerAngles.z;
      transform.Rotate(0 , 0, Direction);
  }
  
  // Update is called once per frame
  void Update () {
  
  
      transform.Translate(Vector2.up * speed);
   }
  }
  </code></pre>
  
  <p>The Code for the Character Movement ---------------------------</p>
  
  <pre><code> using UnityEngine;
   using System.Collections;
  
   public class TopDownCharController2 : MonoBehaviour {
  
   // Movement Variables
   public float walkSpeed;
   public bool colliding; 
  
   // Use this for initialization
   void Start () {
  
   }
  
  
  
   // Update is called once per frame
   void Update ()
   {
  
           if(Input.GetKey (KeyCode.I)) 
           {transform.Translate(Vector2.up * walkSpeed); } // UP MOVEMENT
  
           if(Input.GetKey(KeyCode.J)) 
           {transform.Translate(-Vector2.right * walkSpeed); } // LEFT MOVEMENT
  
           if(Input.GetKey(KeyCode.K)) 
           {transform.Translate(-Vector2.up * walkSpeed); }// DOWN MOVEMENT
  
           if(Input.GetKey(KeyCode.L)) 
           {transform.Translate(Vector2.right * walkSpeed); }// RIGHT MOVEMENT
  
           if(Input.GetKey(KeyCode.U)) {
               // Clockwise
               transform.Rotate(0, 0, -3.0f);
           }
           if(Input.GetKey(KeyCode.O)) {
               // Counter-clockwise
               transform.Rotate(0, 0, 3.0f); 
  
  
           }
       }             
   }
  </code></pre>
  
  <p>If anyone could show me where i'm going wrong that would be lovely. :)</p>