Example #1
0
    public static NearClipPoints GetCameraNearClipPoints(Vector3 cameraPos)
    {
        NearClipPoints points = new NearClipPoints();

        Camera cam = Camera.main;
        if (cam == null)
        {
            return points;
        }

        float distance = cam.nearClipPlane;
        float halfFOV = cam.fov * 0.5f * Mathf.Deg2Rad;
        float height = Mathf.Tan(halfFOV) * distance;
        float width = height * cam.aspect;

        points.LowerRight = (cameraPos + cam.transform.right * width) - (cam.transform.up * height) + (cam.transform.forward * distance);
        points.LowerLeft = (cameraPos - cam.transform.right * width) - (cam.transform.up * height) + (cam.transform.forward * distance);
        points.UpperRight = (cameraPos + cam.transform.right * width) + (cam.transform.up * height) + (cam.transform.forward * distance);
        points.UpperLeft = (cameraPos - cam.transform.right * width) + (cam.transform.up * height) + (cam.transform.forward * distance);

        return points;
    }
Example #2
0
    public static NearClipPoints GetCameraNearClipPoints(Vector3 cameraPos)
    {
        NearClipPoints points = new NearClipPoints();

        Camera cam = Camera.main;

        if (cam == null)
        {
            return(points);
        }

        float distance = cam.nearClipPlane;
        float halfFOV  = cam.fov * 0.5f * Mathf.Deg2Rad;
        float height   = Mathf.Tan(halfFOV) * distance;
        float width    = height * cam.aspect;

        points.LowerRight = (cameraPos + cam.transform.right * width) - (cam.transform.up * height) + (cam.transform.forward * distance);
        points.LowerLeft  = (cameraPos - cam.transform.right * width) - (cam.transform.up * height) + (cam.transform.forward * distance);
        points.UpperRight = (cameraPos + cam.transform.right * width) + (cam.transform.up * height) + (cam.transform.forward * distance);
        points.UpperLeft  = (cameraPos - cam.transform.right * width) + (cam.transform.up * height) + (cam.transform.forward * distance);

        return(points);
    }