x


Instanciate Object Problem for Shooting

Hi all, i try to do my first shoot but i have one problem (I am new in Unity3D).

i Have this code:

public var puntoDisparo: Transform;
public var bala: GameObject;
public var velocidad: float = 10;

function Update () {

    if(Input.GetButtonDown("Fire1")){

       var cloneBala : GameObject = Instantiate (bala, puntoDisparo.position, Camera.main.transform.rotation);
       cloneBala.rigidbody.AddForce(new Vector3(0,0,velocidad), ForceMode.velocityChange);
    }

}

Before add this line cloneBala.rigidbody.AddForce(new Vector3(0,0,velocidad), ForceMode.velocityChange); When i clic on left button mouse my gameObject is perfectly duplicated but however when i try to do that this gameObject can move foward i have this error:

NullReferenceException: Object reference not set to an instance of an object Disparo.Update () (at Assets/Scripts/Disparo.js:15)

'Disparo' is the script that i show before.. So.. What happend? my gameObject only move when i push it with others gameObjects (same gameObjects)

Here some pics.. In the Screen Shot UnityShoot you can see that only when i clicked 3 times if when one gameobject fly! :(

Please Help i want to keep learning

ScreenShots 125alt text125


http://www.dropbox.com/gallery/45494271/1/Screen%20Shots%20Unity3D%20FPS?h=317b52

more ▼

asked Oct 28 '11 at 12:14 AM

Nekros28 gravatar image

Nekros28
1 1 1 1

Do you have a rigidbody on your prefab? It looks like it can't find the component! Otherwise, try putting an 'as GameObject' after your instantiation line (between the last bracket and the semicolon)

Oct 28 '11 at 12:26 AM syclamoth
(comments are locked)
10|3000 characters needed characters left

2 answers: sort voted first

Mr. aldonaletto Thanks very much for help me.. when i change ForceMode.velocityChange for ForceMode.VelocityChange it's work but it not take the rotation of my camera (always shoot in one direction), but when i set there line for:

cloneBala.rigidbody.velocity = cloneBala.transform.forward * velocidad;

All Fine! THANKS VERY MUCH.. But now i want to know why my old code not working, i'll read more for this and keep learning for understand what happend, one more time thnks for your time! your answer WORK PERFECTLY

more ▼

answered Oct 29 '11 at 07:38 AM

Nekros28 gravatar image

Nekros28
1 1 1 1

(comments are locked)
10|3000 characters needed characters left

Based on the pictures you provided, it should work - the only problem is ForceMode.velocityChange: it should be ForceMode.VelocityChange. Anyway, this code will make the bullet go in the Z direction; you should use cloneBala.transform.forward instead. You could also set rigidbody.velocity instead of using VelocityChange:

cloneBala.rigidbody.velocity = cloneBala.transform.forward * velocidad;
more ▼

answered Oct 28 '11 at 12:29 AM

aldonaletto gravatar image

aldonaletto
42.5k 16 43 202

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x3570
x3419
x1725
x414
x330

asked: Oct 28 '11 at 12:14 AM

Seen: 939 times

Last Updated: Oct 29 '11 at 07:38 AM