Пример #1
0
    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);
    }