shooting something

Hi, can you please tell me the steps of shooting a gun in Unity 3D? I really need HELP!!!!

2 Answers

2

Take a look at:

http://answers.unity3d.com/questions/3495/shooting-a-projectile-forward-in-3d-space

and :

http://unity3d.com/support/documentation/ScriptReference/Object.Instantiate.html

That's all you need.

@Brian Foster here is what i did to make lasers come out of my hands in game, but if you follow these steps, you will be able to make any bullet come out of any weapon…

#1: put an empty GameObject where you want your bullets to come through

#1.5: make your game object a child of the weapon, as the bullets will be coming out of the gameObject.

#2:make your bullet, then, make it a prefab.

#3:add the following script:
using UnityEngine;
using System.Collections;

public class Press_Space_to_Fire : MonoBehaviour
{
//Drag in the Bullet Emitter from the Component Inspector.
public GameObject Bullet_Emitter;

//Drag in the Bullet Prefab from the Component Inspector.
public GameObject Bullet;

//Enter the Speed of the Bullet from the Component Inspector.
public float Bullet_Forward_Force;

// Use this for initialization
void Start ()
{

}

// Update is called once per frame
void Update ()
{
	if (Input.GetButtonDown("Fire1"))
	{
		//The Bullet instantiation happens here.
		GameObject Temporary_Bullet_Handler;
		Temporary_Bullet_Handler = Instantiate(Bullet,Bullet_Emitter.transform.position,Bullet_Emitter.transform.rotation) as GameObject;

		//Sometimes bullets may appear rotated incorrectly due to the way its pivot was set from the original modeling package.
		//This is EASILY corrected here, you might have to rotate it from a different axis and or angle based on your particular mesh.
		Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);

		//Retrieve the Rigidbody component from the instantiated Bullet and control it.
		Rigidbody Temporary_RigidBody;
		Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent<Rigidbody>();

		//Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force. 
		Temporary_RigidBody.AddForce(transform.forward * Bullet_Forward_Force);

		//Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
		Destroy(Temporary_Bullet_Handler, 10.0f);
	}
}

}

(you must call this script Press_Space_to_Fire, or, change the public class to whatever you want the name to be before making your own script name.)