使用holotoolkit FOV的Unity hololens总是16.97196

时间:2017-04-21 04:41:10

标签: unity3d hololens

我正在使用holotoolkit的统一来开发hololens应用程序。问题是无论输入什么值,主摄像机的视场(FOV)始终为16.97196。我甚至添加了一个脚本来故意将FOV值设置为60,但它重置为16.97196。可以将FOV值设置为用户要求。

FOV

2 个答案:

答案 0 :(得分:3)

实际的hololens设备运行~17 FOV,Holotoolkit将Camera FOV设置为~16.97,以便在开发和测试时获得相同的输出。

当你为Hololens开发应用程序时,没有任何理由改变FOV并且在统一测试时具有与实际hololens设备不同的输出。

此外,您还可以获得问题详情here

答案 1 :(得分:0)

您可以通过脚本直接将另一个投影矩阵设置到相机来缩短FOV。例如,如果您需要60度FOV,您可以写:

public class SetCameraProjectionMatrix : MonoBehaviour
{
    public float fieldOfViewOverride = 60.0f;

    void Start()
    {
        Camera cam = GetComponent<Camera>();
        Debug.AssertFormat(cam != null, "No {0} component on game object named {1} as expected.", typeof(Camera), gameObject.name);
        cam.projectionMatrix = Matrix4x4.Perspective(fieldOfViewOverride, cam.aspect, cam.nearClipPlane, cam.farClipPlane);
    }
}

Camera.projectonMatrix属性文档:https://docs.unity3d.com/ScriptReference/Camera-projectionMatrix.html

然后忽略视野,直到调用相机方法ResetProjectionMatrix。