2D Player and gun not firing same direction.

Made a simple 2D player movement script, but not sure how to make it fire the same way the player is facing. The player controller is:

using UnityEngine;
using System.Collections;

public class PlatformControler : MonoBehaviour {
   
    public float maxSpeed = 10f;
    bool facingRight = true;

    Animator anim;

    bool grounded = false;
    public Transform groundCheck;
    float groundRadius = 0.2f;
    public LayerMask whatIsGround;
    public float jumpForce = 700F;


    void OnDestroy()
    {
        transform.parent.gameObject.AddComponent<GameOverScript>();
    }


    void Start ()
    {
        anim = GetComponent<Animator> ();
    }
   
    void FixedUpdate ()
    {
        grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
        anim.SetBool ("Ground", grounded);

        anim.SetFloat ("vSpeed", rigidbody2D.velocity.y);

        float move = Input.GetAxis ("Horizontal");

        anim.SetFloat ("Speed", Mathf.Abs (move));
       
        rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y);
       
        if (move > 0 && !facingRight)
            Flip ();
        else if (move < 0 && facingRight)
            Flip ();
    }


    void Update()
    {
                if (grounded && Input.GetKeyDown (KeyCode.Space)) {
                        anim.SetBool ("Ground", false);
                        rigidbody2D.AddForce (new Vector2 (0, jumpForce));

                }
        }
    void Flip ()
    {
        facingRight = !facingRight;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }


}

And the gun script is this:

using UnityEngine;
using System.Collections;

public class FireGunScript : MonoBehaviour {


    bool facingRight = true;
   
    void Start () {
   
    }

    void FixedUpdate()
    {
        float move = Input.GetAxis ("Horizontal");

        if (move > 0 && !facingRight)
            Flip ();
        else if (move < 0 && facingRight)
            Flip ();
        }

    void Update ()
    {


        bool shoot = Input.GetButtonDown("Fire1");
        shoot |= Input.GetButtonDown("Fire2");

       
        if (shoot)
        {
            WeaponScript weapon = GetComponent<WeaponScript>();
            if (weapon != null)
            {
                weapon.Attack(false);
            }
        }
       

    }

    void Flip ()
    {
        facingRight = !facingRight;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }
}

I tried to make it like the movement script, but i cant figure it out. Im new to scripting, please help.

I’m having the same issues. I tried to adapt the code from the Pixelnest tutorial (as you may have with the familiar looking code), but can’t seem to get my weapon to flip directions no matter what I try. Here’s the link to the Pixelnest tutorial for reference Table of contents — Pixelnest Studio.