Nobinator
2/4/2018 - 7:00 PM

Get mouse position OnSceneGUI

Get mouse position z = 0

public static Vector3 GetWorldPointFromMouse(bool plane = true, float planeLevel = 0)
    {
        var groundPlane = new Plane(Vector3.up, new Vector3(0, planeLevel, 0));
 
        var ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
        RaycastHit rayHit;
        Vector3 hit = new Vector3();
        float dist;
 
        if(plane)
            if (groundPlane.Raycast(ray, out dist))
                hit = ray.origin + ray.direction.normalized * dist;
 
        if (!plane)
            if (Physics.Raycast(ray, out rayHit))
                hit = rayHit.point;
 
        return hit;
    }