Q:

Firing Projectiles in Unity

Im trying to build a weapon in a game using Unity. My bullets spawn but i cant seem to get the force to apply on instantiation to get them to actually fire.
My weapon script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Weapon : MonoBehaviour {

    public Rigidbody2D projectile;
    public float forceMultiplier;
    public Vector2 direction;

    public Transform firePoint;

    private float timeBtwShots;
    public float startTimeBtwShots;

    public void Fire(float force, Vector2 direction)
    {
        Instantiate(projectile, firePoint.position, transform.rotation);  
        projectile.AddForce(direction * force);
    }

    // Update is called once per frame
    void Update () {
        if (timeBtwShots <= 0)
        {
            if (Input.GetKeyDown(KeyCode.Return))
            {
                Fire(forceMultiplier, direction);
                timeBtwShots = startTimeBtwShots;
            }
        }
        else 
        {
            timeBtwShots -= Time.deltaTime;
        }
    }
}

A:

You need to add the force to the spawned object and not the prefab.
Your code should be something like this:
    public void Fire(float force, Vector2 direction)
    {
        Rigidbody2D proj = Instantiate(projectile, firePoint.position, transform.rotation);  
        proj.AddForce(direction * force);
    }

