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?

You need:

    var hit : RaycastHit;

instead of

    var hit = RaycastHit;

RaycastHit is a type and not a value that you want to assign.