Struggling with Unity 5 GetComponent: Null reference
Hi, I have read a lot of the posts here and none of them are facing my issue. usually this null reference is caused by either accessing a parent when you are not supposed to or the component simply is not attached...Let me start by explaining my hierarchy, specifically what i'm trying to access.
I have a cube with no mesh renderer or collider and it has a door mesh with colliders inside it. the point of the cube is to change the rotation axis of the door therefore the "Rotations script" called doorscript is on the parent of the mesh that I will be raycasting.
Everything works up until it tries to access the script and its function. although mono did suggest the script name when i wrote it.
Here is the problematic line that unity is complaining about
hit.collider.transform.parent.GetComponent<doorscript>().changedoorstate();
and my code is :
using UnityEngine;
using System.Collections;
public class interactScript : MonoBehaviour {
public float interactdistance = 5f;
void Update () {
if (Input.GetKeyDown(KeyCode.E)){
Ray ray = new Ray(transform.position,transform.forward);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, interactdistance)){
if(hit.collider.CompareTag("door")){
Debug.Log("Hit Door");
hit.collider.transform.parent.GetComponent<doorscript>().changedoorstate();
}
}
}
}
}
I have been having these issues non stop when using GetComponent in unity 5 so much that I'd rather just not use it at all :( please can someone help me understand why is is giving me a null reference exception like
NullReferenceException: Object reference not set to an instance of an object interactScript.Update () (at Assets/interactScript.cs:16)
¿Can you upload a screenshot of hierachy? And mark the GameObject with $$anonymous$$eshCollider and the GameObject with script 'doorscript'.
Your question made me second guess myself. So i checked the hierarchy again and the assets from the store that I am using had the mesh embedded in the child making the child "door" of my hinge object the actual parent. confusing but fixed! If anyone is reading - check your heirarchy!! Thanks @AR$$anonymous$$$$anonymous$$s
Your answer
Follow this Question
Related Questions
GetComponnent null reference C# 1 Answer
Having a issue with a NullReferenceException 1 Answer
Changing script variable from another script doesn't change it in the original script? 0 Answers
getcomponent cant find every button script in every gameobject 1 Answer
Referencing a GameObject's Components from if Statements (c#) 0 Answers