- Home /
Question by
HammockHead · Dec 13, 2012 at 03:58 AM ·
rigidbodynullreferenceexceptiondragthrow
Need Help!
I have created a script to allow my FPS Character to pick up objects and through them (like in Amnesia). I can pick up an object and throw it but once I do my Character can no longer pick up objects and i get a NullReferenceException. Also the object is locked on the y axis for some reason.
var baseForce : float = 5; //Base Force Applied to Object
var catchRange : float = 4; //Max Range of Object Interaction
var heldRange : float = 3; //Distance of Object Away from FPS Controller
enum ObjectState { Free, Held, Thrown }; // Free - Can Pick Up, Held - Can Not Pick Up, Thrown - Apply Force to Object
private var objectState : ObjectState = 0; //Set objectStae to Free
private var rigid : Rigidbody = null; //Set var Rigid as unknown
function FixedUpdate() {
if ( objectState == ObjectState.Free ) { //If Free
if (Input.GetButton( "Fire1" )) { //If Fire1 Clicked
var hit :RaycastHit;
if ( Physics.Raycast(transform.position, transform.forward, hit, catchRange )) { //Send Ray Foward by catchRange
if ( hit.rigidbody ) { //If it Hits Rigidbody
rigid = hit.rigidbody;
objectState = ObjectState.Held; //Set objectState to Held
}
}
}
else {
rigid.useGravity = true;
}
}
else if ( objectState == ObjectState.Held ) {
rigid.MovePosition(transform.position + transform.forward * heldRange); //Moves Rigidbody Forward
rigid.useGravity = false; // Disables Gravity
if (Input.GetButton( "Fire2" )) {
rigid.useGravity = true;
objectState = ObjectState.Thrown;
}
}
else if ( objectState == ObjectState.Thrown ) {
rigid.AddForce (transform.forward * baseForce );
objectState = ObjectState.Free;
}
if (!Input.GetButton( "Fire1" )) {
objectState = ObjectState.Free;
}
}
Comment
does the rigidbody act how you want until you try to pick it up? the second time that is?
Your answer
![](https://koobas.hobune.stream/wayback/20220613085345im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Drag and throw Rigidbody2d? 3 Answers
Can I have a rigidbody continue to calculate physics while being dragged by code? 2 Answers
Limiting the top speed of a rigidbody in 3d space? 1 Answer
Drag around riggidbodies with a "pin" 0 Answers
How to move a group of objects with rigidbodies together? 2 Answers