- Home /
Object reference not set to an instance of an object
Hello everyone, im having a problem when trying to connect 2 scripts, the problem is: "NullReferenceException:Object reference not set to an instance of an object"(its says the problem is in the 8 line of the CollisionDetectorSphereScript)Here i leave the 2 connected scripts:
CollisionDetectorSphereScript:
var floatAbove : float = 0.1;
var playerCapsuleTransform : Transform;
@HideInInspector
var collisionDetected : boolean = false;
function Update ()
{
transform.position.x = playerCapsuleTransform.position.x;
transform.position.z = playerCapsuleTransform.position.z;
transform.position.y = playerCapsuleTransform.position.y + ((playerCapsuleTransform.GetComponent(Collider).height * playerCapsuleTransform.localScale.y) / 2) + (transform.localScale.y / 2) + floatAbove;
}
function OnCollisionStay (collision : Collision)
{
if (collision.transform.tag == "Level Parts")
collisionDetected = true;
}
function OnCollisionExit ()
{
collisionDetected = false;
}
And the other, PlayerMovementScript:
var walkAcceleration : float = 5;
var walkAccelAirRadio : float = 0.1;
var walkDeacceleration : float = 5;
@HideInInspector
var walkDeaccelerationVolx : float;
@HideInInspector
var walkDeaccelerationVolz : float;
var cameraObject : GameObject;
var maxWalkSpeed : float = 15;
@HideInInspector
var horizontalMovement : Vector2;
var jumpVelocity : float = 20;
@HideInInspector
var grounded : boolean = false;
var maxSlope : float = 60;
var crouchRacio : float = 0.3;
var transitionToCrouchSec : float = 0.2;
var crouchingVelocity : float;
var currentCrouchRacio : float = 1;
var originalLocalScaleY : float;
var crouchLocalScaleY : float;
var collisionDetectionSphere : GameObject;
function Awake ()
{
currentCrouchRacio = 1;
originalLocalScaleY = transform.localScale.y;
crouchLocalScaleY = transform.localScale.y * crouchRacio;
}
function Update ()
{
transform.localScale.y = Mathf.Lerp(crouchLocalScaleY, originalLocalScaleY, currentCrouchRacio);
if (Input.GetButton("Crouch"))
currentCrouchRacio = Mathf.SmoothDamp(currentCrouchRacio, 0, crouchingVelocity, transitionToCrouchSec);
if (Input.GetButton("Crouch") == false && collisionDetectionSphere.GetComponent(CollsionDetectionSphereScript).collisionDetected == false)
currentCrouchRacio = Mathf.SmoothDamp(currentCrouchRacio, 1, crouchingVelocity, transitionToCrouchSec);
horizontalMovement = Vector2(rigidbody.velocity.x, rigidbody.velocity.z);
if (horizontalMovement.magnitude > maxWalkSpeed)
{
horizontalMovement = horizontalMovement.normalized;
horizontalMovement *= maxWalkSpeed;
}
rigidbody.velocity.x = horizontalMovement.x;
rigidbody.velocity.z = horizontalMovement.y;
if (grounded){
rigidbody.velocity.x = Mathf.SmoothDamp( rigidbody.velocity.x, 0, walkDeaccelerationVolx, walkDeacceleration);
rigidbody.velocity.z = Mathf.SmoothDamp( rigidbody.velocity.z, 0, walkDeaccelerationVolz, walkDeacceleration);}
transform.rotation = Quaternion.Euler(0, cameraObject.GetComponent(MouseLookScript).currentYRotation,0);
if (grounded)
rigidbody.AddRelativeForce(Input.GetAxis("Horizontal") * walkAcceleration * Time.deltaTime , 0, Input.GetAxis("Vertical") * walkAcceleration * Time.deltaTime);
else
rigidbody.AddRelativeForce(Input.GetAxis("Horizontal") * walkAcceleration * walkAccelAirRadio * Time.deltaTime , 0, Input.GetAxis("Vertical") * walkAcceleration * walkAccelAirRadio * Time.deltaTime);
if (Input.GetButtonDown("Jump")&& grounded)
rigidbody.AddForce(0, jumpVelocity,0);
}
function OnCollisionStay (collision : Collision)
{
for (var contact : ContactPoint in collision.contacts)
{
if (Vector3.Angle(contact.normal, Vector3.up) < maxSlope)
grounded = true;
}
}
function OnCollisionExit ()
{
grounded = false;
}
Thanks to ETeeskiTutorials and who reads this question :)
PD: sorry for my bad english
Are you setting playerCapsuleTransform
to anything? Have you set that value in the inspector? Can point out the exact line that the error is on? Telling us the line number doesn't usually do much good since the line numbering is probabl different.
Yes, I set the collisiondetectionsphere and the player capsule in the inspector, the console says that the problem is in the collisiondetectionspherescript, here:
transform.position.x = playerCapsuleTransform.position.x; transform.position.z = playerCapsuleTransform.position.z; transform.position.y = playerCapsuleTransform.position.y + ((playerCapsuleTransform.GetComponent(Collider).height * playerCapsuleTransform.localScale.y) / 2) + (transform.localScale.y / 2) + floatAbove;
dont worry i fix it, the 8 line its not the problem, it was the tag, is use level parts, and it shoul be level stuff, my bad sorry
Your answer
Follow this Question
Related Questions
NullReferenceException:"Object reference not set to an instance object" 1 Answer
Passing information error 0 Answers
The infamous: Object Reference not set to an instance of an object 1 Answer
Object Reference Not Set to an Instance of an object 0 Answers
"Object reference not set to an instance of an object" 2 Answers