Unity中非等比例修改CameraFOV大小

来源:互联网 发布:买卖数据 编辑:程序博客网 时间:2024/05/22 04:46

最近公司在进行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));    }}

效果是将显示出的东西进行左右的压缩,效果如下图

0 0
原创粉丝点击