unity 怎么设置分辨率?unity摄像头怎么设置分辨率?

unity 怎么设置分辨率?unity摄像头怎么设置分辨率?,第1张

打开Unity,新建一个空工程,然后在场景中铺满Canvas添加RawImage,具体如下图

在工程中,新建一个脚本OpenCamera,双击打开进行编辑,具体如下图

OpenCamera 脚本的具体代码和代码说明如下图

OpenCamera 脚本的具体内容如下:

using System.Collections

using UnityEngine

using UnityEngine.UI

public class OpenCamera : MonoBehaviour

{

public RawImage rawImage

private WebCamTexture webCamTexture

private Vector2 resolution = new Vector2(1280, 720)

private int fps = 60

// Use this for initialization

void Start()

{

StartCoroutine(OpenBGCamera())

}

IEnumerator OpenBGCamera()

{

Debug.Log("Test")

//获取摄像头权限

yield return Application.RequestUserAuthorization(UserAuthorization.WebCam)

if (Application.HasUserAuthorization(UserAuthorization.WebCam))

{

//停止正在使用的摄像头

if (webCamTexture != null)

{

webCamTexture.Stop()

}

//判断时候有摄像头

if (WebCamTexture.devices.Length != 0)

{

//new一个后置摄像头并且设置分辨率和FPS,渲染到UI上

webCamTexture = new WebCamTexture(WebCamTexture.devices[0].name, (int)resolution.x, (int)resolution.y, fps)

rawImage.texture = webCamTexture

webCamTexture.Play()

}

}

}

}

脚本编译正确,回到Unity,把脚本挂载上去,具体如下图

在顶部菜单栏 File—BuildSettings,点击打开,切换成移动端,并且设置屏幕不自动旋转,然后根据手机进行设置方向,方向不同会是画面颠倒,不要紧,根据情况更换 Orientation 即可,具体如下图

编译打包,手机上运行结果如下如

其实 Unity3D 安卓版,对于不同的分辨率,我们只需要设置 一个唯一的屏幕显示区域比(说白了就是宽高比),这样显示区域就不会随分辨率的改变而拉升。

上代码:

using UnityEngine

using System.Collections

public class Resolution : MonoBehaviour {

public Camera mainCamera

void Start()

{

//Screen.SetResolution(1280, 800, true, 60);

mainCamera = Camera.mainCamera

// float screenAspect = 1280 / 720现在android手机的主流分辨。

// mainCamera.aspect --->摄像机的长宽比(宽度除以高度)

mainCamera.aspect = 1.78f

}

}

把此代码脚本绑定在 MainCamera 上就OK了,这样就不会导致不同分辨率下屏幕显示区域大小不一的问题!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11768605.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存