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