public static Vector3 ScreenToEnvironmentPoint(GameplayCamera cam, Vector3 screenPoint) { Vector3 environmentPoint = new Vector3(); Camera camera = cam.GetCamera(); Ray rayFromMouse = camera.ScreenPointToRay(screenPoint); Vector3 origin = rayFromMouse.origin; Vector3 direction = rayFromMouse.direction; Vector3 end = origin + (direction * cam.GetMaxDistanceFromFocus() * 2); environmentPoint = origin; ProcessIntersection onIntersect = (result) => { environmentPoint = result.GetPosition(); }; ShouldContinueRayCast shouldContinue = (result) => { return(false); }; IncrementalRaycast(origin, end, onIntersect, shouldContinue); return(environmentPoint); }