Unity屏幕永远保持为固定分辨率
Unity屏幕永远保持为固定分辨率
前言
开题废话
· 啊喽哈,你们的小黑又来了,今天是周六啊,小伙伴们有咩有什么活动进行呢,不管如何都希望大家要出门戴好口罩,回家洗手。一定要注意安全啦!
· 还有还有,小黑换工作了和你们说了么?哈哈哈哈哈,没说就现在告诉你们啦,在上家公司待的小黑实在是太憋屈了,索性就换工作了,然后来到了现在这家公司,技术总监超级nice👍,人好技术牛,啥不会都能去问他,大哥一枚,小黑跟定了😂。记录于2021年6月24日:小黑是傻逼,跟着他等于一年白费。还好自己没浪费时间学了点儿东西。
之所以会写今天的这篇小知识呢,是因为我大哥在群里提出了一个功能:
就是pc程序不管运行在什么分辨率下,永远保持16:9的比例,多出的屏幕就留黑边。你们可以改变当前显示器分辨率模拟不同分辨率下的软件运行情况,测试是否改的符合预期。
正好今儿下午:
- 1没出去,2没朋友来,3联盟一个人打两把就没劲儿了
- 所以,开干吧! 淦!淦!淦!淦!淦!
- 实现了该功能,然后写博客
- 结果在去复制我老大呢段话的时候,突然发现我大哥还给了思路/(ㄒoㄒ)/~~:
给个思路,player setting下有native resolution的配置,更改这个可以控制程序运行的分辨率,所以你们可以在程序启动读取当前屏幕分辨率,然后计算出一个最大的16:9的分辨率给这个配置赋值应该就可以了。
来根烟,小黑我冷静一下;别问为啥,问就是:我老大发的内容没看完就开干,我干完了功能后还发送了录屏过去,不是按小黑老大思路走的,应该没啥大问题。
不管了、不管了,也不知道不设置native resolution这个参数有没有问题,写博客分享知识要紧😂~
小黑废话说了这么多,相信大家也不想看了,想看的留言啊,出发,上代码😄
Unity版本
目前小黑比较喜欢用新版本的Unity,所以版本为:
Unity2019.4.4f1
👇正题开始
正题:
打开一场景
因为小黑新开的项目,所以加入了一个Cube用来分辨
创建脚本并且编写
using UnityEngine;
/// <summary>
/// 屏幕分辨率控制类
/// </summary>
public class CamreaController :MonoBehaviour
{
//想要的 宽比
float ScaleWithWidth = 16f;
//想要的 高比
float ScaleWithHight = 9f;
private void Start()
{
ScreeneResolution();
}
private Camera MAIN_CAMERA;
private float rectHight;
private float rectwidth;
private float widthShoudSize;
private float heightShoudSize;
private void ScreeneResolution()
{
MAIN_CAMERA = GetComponent<Camera>();
float screenWidth = Screen.width;
float screenheight = Screen.height;
widthShoudSize = screenheight / ScaleWithHight * ScaleWithWidth;
heightShoudSize = screenWidth / ScaleWithWidth * ScaleWithHight;
rectwidth = widthShoudSize / screenWidth;
rectHight = heightShoudSize / screenheight;
if (Screen.width <= Screen.height)
MAIN_CAMERA.rect = new Rect(0, (1f - rectHight) / 2f, 1, rectHight);
else
MAIN_CAMERA.rect = new Rect((1f - rectwidth) / 2f, 0, rectwidth, 1);
}
}
挂在脚本到场景摄像机上边
以不同比的分辨率运行程序,并且观看是否正确
发布为exe测试
这个大家自己测一下就好了啊,小黑不会发短视频😭,还有待学习啊。。
结尾
结尾唠叨
- 小黑的今日分享结束啦,小伙伴们你们get到了么,你们有没有更好的办法呢,可以评论区留言分享,也可以加小黑的QQ:841298494,大家一起进步。
今日推荐
关于屏幕分辨率的博客:
👉👉 Unity之屏幕自适应
什么?小伙伴你还想要别的知识?好的呀,分享给你们😄
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
小黑的杂货铺,想要什么都有,客官来杯茶喝啊
程序的道路上学习永不停止,探索随时进行。
Let’s go. Just do it. We can.