概述
最近公司在进行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大小所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复