Unity屏幕永远保持为固定分辨率
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.
Unity屏幕永远保持为固定分辨率的更多相关文章
- Unity 3D手游对不同分辨率屏幕的UI自适应
目前安卓手机的屏幕大小各异,没有统一的标准,因此用Unity 3D制作的手游需要做好对不同分辨率屏幕的UI自适应,否则就会出现UI大小不一和位置错位等问题. 我们的项目在开发时的参照分辨率(Refer ...
- 关于Unity屏幕分辨率的比例
1.Free Aspect任意窗口大小 2.16:9是1920*1080的手机 3.4:3是1024*768ipad 4.3:2是960*640,iPhone4手机屏幕 5.480*800,竖屏手机游 ...
- Unity 屏幕适配小脚本
屏幕适配是可以通过代码实现的,相信给你时间就一定能写出来. 我们公司貌似没有分辨率适配框架通常对应小屏幕的苹果4要额外设置下等等就完了! 屏幕适配框架实现思路: 通过代码获取当前的分辨率 –> ...
- 闲话Android 之 屏幕大小、pixel、分辨率、dpi、dip
之前都是在自研的产品上做开发,而且我们的屏幕是1dip=1px的,所以在写App布局的时候,随便写单位,也没觉得什么不妥.可是近期我把以前的App里面的一些自定义控件在emulator上跑的时候,才发 ...
- Unity屏幕射线碰撞
Layers层: 从Layers设置看来,最多支持32层. 图层的值开始依次 0^2,1^2, 2^2, 3^3 依次增加. 当摄像机Culling Mask属性 Nothing= –1 Eveni ...
- Unity 屏幕震动效果实现
要实现震屏效果其实并不难,所谓的震屏在PC端可以简单地理解为相机(MainCamera)的抖动. 代码实现如下: using UnityEngine; using System.Collections ...
- css div相对屏幕永远居中
不管屏幕如何滑动,该div始终保持在屏幕正中央(支持IE7(包括IE7)以上版本) <div class="loginBox"></div> .loginB ...
- Unity 屏幕外死亡的敌人的分数显示在屏幕内
在敌人死亡后,会出现分数,如果敌人死亡的位置在屏幕内,那么使得获得的分数显示在屏幕内,超出屏幕范围的,显示在屏幕外 当然,这里例子是使得场景中的物体显示在屏幕内,当然也可以使用纯粹的UGUI物体的显示 ...
- 元素随屏幕滚动到顶部固定js效果
网站中常见这种效果,某个广告或详情页切换tab,当屏幕向下移动时,该元素会停留在浏览器最顶部,下面ecshop模板中心教您实现js代码: 案例图: 1.首先在页面上找到该元素 加上 id =&quo ...
- 响应式网站布局要适应的当下主流手机屏幕的各个版本的分辨率有哪些(media query)
CSS宽有14种: 320.360.375.384.400.414.533.600.768.800.853.1024.1280.1366 CSS高有16种: 360.480.533.568.569.6 ...
随机推荐
- CSP-S游记
第三次考csp-s了,希望这次不要二等 Day ?(初赛) 之前校内模拟赛平均下来都在班级中游,所以不求高分但是觉得过没问题(事实好像确实如此 先开题,选择题很水秒了(devinNB猜到了考Linux ...
- ENS框架下一次控制灯的调试记录
正常流程 登录小站,点击管理--磁盘,在硬盘下创建分区并挂载 安全下电,拔掉硬盘和TEC,再上电 硬件端 drv_fault_check_init 初始化 并绑定硬件回调 drv_fault_chec ...
- C++初阶(vector容器+模拟实现)
迭代器 四种迭代器 容器类名::iterator 迭代器名;//正向迭代器 容器类名::const_iterator 迭代器名;//常量正向迭代器,const修饰,只能用于读取容器内的元素,不能改变其 ...
- 根据MediatR的Contract Messages自动生成Minimal WebApi接口
大家好,我是失业在家,正在找工作的博主Jerry.今天给大家介绍一个能大大减少ASP.Net Minimal WebApi编码量的方法. 我们一般会把微服务的VO和DTO封装成消息类,并作为WebAp ...
- SSH(三)创建包和第一个页面
在ssh web项目src下一次创建 com.ssh/ .action .dao .entity .service 四个包,example: 在entity包下创建class,name: produc ...
- 多表查询、Navicat软件、PyMySQL模块
目录 多表查询.Navicat软件.PyMySQL模块 一.多表查询的两种方法 1.准备工作 2.第一种:连表操作 3.第二种:子查询 总结与结论: 二.多表查询练习题 1.课堂多表查询练习题 2.以 ...
- 在微信上搭建ChatGpt机器人
在微信上搭建ChatGpt机器人 项目地址:https://gitee.com/shtml/wechatbot?_from=gitee_search 准备 一个服务器:Windos,Centos,Ub ...
- MySQL函数--时间格式--流程控制if判断
目录 一:函数 1.MySQL什么是函数? 2.通过help查看函数帮助 3.移除指定字符 4.大小写转换 5.获取左右起始指定个数字符 6.返回读音相似值(对英文效果) 二:时间格式实战案例 1.时 ...
- avue属性详解和使用介绍
官方文档:https://www.avuejs.com/form/form.html <template> <!-- 基础组件 --> <basic-container& ...
- JavaScript:显式转换数据类型:如何转换为数值、字符串和布尔值类型?
JS的运算符以及某些内置函数,会自动进行数据类型的转换,方便计算,即隐式转换数据类型: 但是很多时候,我们希望可以手动控制数据类型的转换,即显示转换数据类型: 转换为字符串 String()函数 使用 ...