Bullet not moving from script

Here’s my code, what else do I need to make it move for a 2d game.

Rigidbody2D bulletInstance = Instantiate(bullets, transform.position, Quaternion.Euler(new Vector3(0,0,0))) as Rigidbody2D;
			bulletInstance.velocity = new Vector2(bulletspeed, 0);

Well, the usual way I make 2d bullets move is by applying the force on the prefab itself. So, for example I would remove:

bulletInstance.velocity = new Vector2(bulletSpeed, 0);

Then on your prefab bullets I would attach a new Rigidbody2D and create a new script which does the following:

    public float _bulletSpeed;
    public Rigidbody2D _rb;

	void Start () {

	  _rb = GetComponent<Rigidbody2D>();


	void FixedUpdate () {

	_rb.velocity = new Vector2 (bulletSpeed, 0);

	_rb.AddForce(_rb.velocity, (ForceMode2D.Force));


I hope this was what you were looking for. :slight_smile:

mabye this might help you out im building a 2d game that shoots projectiles and this is the scropt that i use

using UnityEngine;
using System.Collections;

public class NinjastarController : MonoBehaviour {

	public float speed;
	public PlayerMovement player;
	public float RotationSpeed;

	void start()
		player = FindObjectOfType<PlayerMovement>();
		if (player.transform.localScale.x < 0) 
			speed = -speed;
			RotationSpeed = -RotationSpeed;
		}else if (player.transform.localScale.x > 0){
			speed = speed;
			RotationSpeed = rotation;

	void Update () {
		rigidbody2D.angularVelocity = RotationSpeed;

		rigidbody2D.velocity = new Vector2 (speed, rigidbody2D.velocity.y);


and this is in my player movement script

public void FireStar()
		Instantiate (ninjaStar, firePoint.position, firePoint.rotation);

im setup for touch controls so that’s why its in its own method but you can put the instantiate code on a regular button press…again i hope this helps if you are having trouble understanding i can explain how thi is all working for you

What type is the bullets?

I guess that’s a GameObject, right?

Try code below:

GameObject bulletInstance = Instantiate(bullets, transform.position, Quaternion.Euler(new Vector3(0,0,0))) as GameObject;
Rigidbody2D rigidbody = bulletInstance.GetComponent<Rigidbody2D>();
rigidbody.velocity = new Vector2(bulletspeed, 0);