最近公司在进行unity中项目的时候,有一个需求就是将Unity进行分屏操作,而由于我们的最终显示设备需要2560*720的分辨率,导致使用正常的VR插件会使得场景中物体拉长,显示不正常.
最终试了很多种方法后,发现Unity自带了一个改变camera的FOV的api:Camera.projectionMatrix,其使用的参数是一个4*4的矩阵,对矩阵进行变换即可对camera的FOV进行操作,而非在edictor中直接进行FOV的缩放,Edictor中FOV的数值更改是等比的.以下为示例代码.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PhantaCameraRenderer : MonoBehaviour
{
void Awake ()
{
Camera[] cams = GetComponentsInChildren<Camera>();
foreach (Camera cam in cams)
cam.projectionMatrix = cam.projectionMatrix * Matrix4x4.Scale(new Vector3(0.5f, 1, 1));
}
}
效果是将显示出的东西进行左右的压缩,效果如下图

最后
以上就是动人冰棍最近收集整理的关于Unity中非等比例修改CameraFOV大小的全部内容,更多相关Unity中非等比例修改CameraFOV大小内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复