- Home /
Finding things with Raycasthit
Hello :)
I am writing a few functions for Buttons in my game, but no matter what I do I can't seem to get anything with Raycasthit.
At the moment I have two problems:
1st: I wan't to send a message to a script. I'm trying to find it with GetComponent, but I always get this Error: "NullReferenceException: Object reference not set to an instance of an object"
function Sound1 (){
var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay(Vector3(Screen.width*0.5, Screen.height*0.5,0));
var pSound : PSound;
pSound = hit.collider.gameObject.GetComponent(PSound);
if(Physics.Raycast(ray, hit, 5)){
Debug.Log("foundPSound");
pSound.SendMessage("PlayS");
SendMessage("DisMMenu");
}
}
2nd: I want to find the child of a GameObject to enable it. There I get the "NullReferenceExeption" error aswell :(
function Colour (){
var hit : RaycastHit;
var ray : Ray = Camera.main.ScreenPointToRay(Vector3(Screen.width*0.5, Screen.height*0.5,0));
var col = hit.transform.Find("ColorPicker").gameObject;
if(Physics.Raycast(ray, hit, 5)){
col.enabled = true;
}
}
I have tried changing certain phrases (like "collider" to "transform", or "enabled" to "active", etc) for hours but I seem to get it right.
It would be great if anyone could help me.
Thanks in advance ;)
Answer by phil_me_up · Dec 15, 2015 at 10:57 PM
You're calling this line:
pSound = hit.collider.gameObject.GetComponent(PSound);
before you've actually populated the contents of 'hit', so your truing to get collider and the gameObject from something that hasn't been filled with data yet. You need to move that to within you're Physics.Raycast if statement.
I'd also do a few safety calls to make sure you actually are actually able to integorgate the response as you'd expect (e.g. if(hit != null) { }, if(hit.collider != null) { }, if(hit.collider.gameObject != null) {}, etc)
Your answer
![](https://koobas.hobune.stream/wayback/20220612052713im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
GetComponent usage returns NullReferenceException, not sure why 1 Answer
Find + GetComponent not working as expected 0 Answers
Referencing to an initiated Text 1 Answer
Better to assign components to variables or reference directly each time 3 Answers
Need an advise, how to find all objects with a specific name and a specific script? 2 Answers