- Home /
Why doesn't Physics.Raycast(ray, RaycastHit, distance) work?
Hello everyone.
I'm trying to use raycasting to check if i click on something or in empty space. I used this line of code:
if (Input.GetMouseButtonDown (0))
{
var hit = RaycastHit;
var ray1 : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
Debug.DrawRay (ray1.origin, ray1.direction * 10, Color.red);
if (Physics.Raycast (ray1, hit, 100))
{
// You hit something
}
}
It's very similar to one of the examples in the documentation but it still doesn't work:
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit, 100))
{
Debug.DrawLine (ray.origin, hit.point);
}
I get an error at the line with if (Physics.Raycast (ray1, hit, 100)) and it says:
Assets/jsPlayer.js(21,37): BCE0023: No appropriate version of 'UnityEngine.Physics.Raycast' for the argument list '(UnityEngine.Ray, System.Type, int)' was found.
Those someone know what I'm doing wrong?
Answer by Bunny83 · Feb 18, 2013 at 11:29 AM
You need:
var hit : RaycastHit;
instead of
var hit = RaycastHit;
RaycastHit is a type and not a value that you want to assign.
Your answer
Follow this Question
Related Questions
Raycast hit in OnDrawGizmos but not in Update 1 Answer
Raycast does not work with touch input but works well with mouse input why? 0 Answers
if ( Physics.Raycast ( ray, out hit, Mathf.Infinity, LayerMask ) ) not working? 2 Answers
Raycast2D and origin position Offset 1 Answer
RaycastHit always returns 0 1 Answer