Can't get 2d Scroller to move projectile when fired.

I am making a 2d side scrolling game where the player controller script allows the player to fire a projectile when the “Fire1” axis is set to true. I have a prefab of the shot that holds the following components: Rigid Body2D, Box Collider and a Sprite Render. The issue that I am having is that when I instantiate the object and try to add velocity to it nothing happens. Here is the code below:

    public class PlayerControler : MonoBehaviour {
      
        // PUBLIC VARS:  
        public Vector2 _speed = new Vector2(1, 1);
        public Vector2 _shotSpeed = new Vector2(5, 0);
        public int _shotDamage = 1;
        public GameObject _projectile;
      
        // PRIVATE VARS: 
        private Vector2 _movement = new Vector2();
        private bool _firedShot = false;
        void Update()
        {
            var x = Input.GetAxis("Horizontal");
            var y = Input.GetAxis("Vertical");
            _movement.x = x * _speed.x;
            _movement.y = y * _speed.y;
            if (Input.GetButtonUp("Fire1"))
            {
                _firedShot = true;
                FiredShot();
            }
            _shotSpeed.x = 1 * _shotSpeed.x;
            _shotSpeed.y = 1 * _shotSpeed.y;
        }
        void FixedUpdate()
        {
            rigidbody2D.velocity = _movement;
        }
        void FiredShot()
        {
            if (_firedShot)
            {
                Instantiate(_projectile, transform.position,  Quaternion.identity);
                _projectile.rigidbody2D.velocity = _shotSpeed;
                _firedShot = false;
            }
        }
    }

You are setting the velocity of the prefab, not the instantiated object: Do:

         if (_firedShot)
         {
             _newProjectile = (GameObject)Instantiate(_projectile, transform.position,  Quaternion.identity);
             _NewProjectile.rigidbody2D.velocity = _shotSpeed;
             _firedShot = false;
         }

Note that ‘_shotSpeed’ is a public variable, so you need to verify the value in the Inspector. The value set in code is only used at the time the script is attached.