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屏幕永远保持为固定分辨率的更多相关文章

  1. Unity 3D手游对不同分辨率屏幕的UI自适应

    目前安卓手机的屏幕大小各异,没有统一的标准,因此用Unity 3D制作的手游需要做好对不同分辨率屏幕的UI自适应,否则就会出现UI大小不一和位置错位等问题. 我们的项目在开发时的参照分辨率(Refer ...

  2. 关于Unity屏幕分辨率的比例

    1.Free Aspect任意窗口大小 2.16:9是1920*1080的手机 3.4:3是1024*768ipad 4.3:2是960*640,iPhone4手机屏幕 5.480*800,竖屏手机游 ...

  3. Unity 屏幕适配小脚本

    屏幕适配是可以通过代码实现的,相信给你时间就一定能写出来. 我们公司貌似没有分辨率适配框架通常对应小屏幕的苹果4要额外设置下等等就完了! 屏幕适配框架实现思路:  通过代码获取当前的分辨率 –> ...

  4. 闲话Android 之 屏幕大小、pixel、分辨率、dpi、dip

    之前都是在自研的产品上做开发,而且我们的屏幕是1dip=1px的,所以在写App布局的时候,随便写单位,也没觉得什么不妥.可是近期我把以前的App里面的一些自定义控件在emulator上跑的时候,才发 ...

  5. Unity屏幕射线碰撞

    Layers层: 从Layers设置看来,最多支持32层.  图层的值开始依次 0^2,1^2, 2^2, 3^3 依次增加. 当摄像机Culling Mask属性 Nothing= –1 Eveni ...

  6. Unity 屏幕震动效果实现

    要实现震屏效果其实并不难,所谓的震屏在PC端可以简单地理解为相机(MainCamera)的抖动. 代码实现如下: using UnityEngine; using System.Collections ...

  7. css div相对屏幕永远居中

    不管屏幕如何滑动,该div始终保持在屏幕正中央(支持IE7(包括IE7)以上版本) <div class="loginBox"></div> .loginB ...

  8. Unity 屏幕外死亡的敌人的分数显示在屏幕内

    在敌人死亡后,会出现分数,如果敌人死亡的位置在屏幕内,那么使得获得的分数显示在屏幕内,超出屏幕范围的,显示在屏幕外 当然,这里例子是使得场景中的物体显示在屏幕内,当然也可以使用纯粹的UGUI物体的显示 ...

  9. 元素随屏幕滚动到顶部固定js效果

    网站中常见这种效果,某个广告或详情页切换tab,当屏幕向下移动时,该元素会停留在浏览器最顶部,下面ecshop模板中心教您实现js代码: 案例图: 1.首先在页面上找到该元素  加上 id =&quo ...

  10. 响应式网站布局要适应的当下主流手机屏幕的各个版本的分辨率有哪些(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 ...

随机推荐

  1. [转]VB中资源文件.res的使用方法详解

    来源:https://blog.csdn.net/miaozk2006/article/details/82417156 在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将 ...

  2. maven-入门到入土

    详情见代码重工:连接http://heavy_code_industry.gitee.io/code_heavy_industry/pro002-maven/

  3. Maven 聚合工程的创建

    简单场景举例 聚合工程创建示例 说明: 创建 Maven Project:表示创建 maven 项目,new Project 方式创建 创建 Maven Module:表示创建 maven 项目,ne ...

  4. C# 多线程访问之 SemaphoreSlim(信号量)【C# 进阶】

    SemaphoreSlim 是对可同时访问某一共享资源或资源池的线程数加以限制的 Semaphore 的轻量替代,也可在等待时间预计很短的情况下用于在单个进程内等待. 由于 SemaphoreSlim ...

  5. Nginx重写功能(rewrite与location)

    一.常用的Nginx 正则表达式 二.访问路由location 2.1location的分类 location 大致可以分为三类: 精准匹配:location = / {} 一般匹配:location ...

  6. 【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法

    本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程.通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式 ...

  7. mindxdl--common--logger.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common the contr ...

  8. openstack单机部署 未完成

    注:centos8单机版 注:本次实验手动配置密码均为admin 环境准备:配置hosts文件 192.168.116.85为本机IP echo '192.168.116.85 controller ...

  9. Devexpress控件pivotGridControl显示字段面板

    可在窗口加载的时候使用函数 pivotGridControl1.ShowCustomization(); 大家如果有问题可以 Console.WriteLine("加群"+&quo ...

  10. Zabbix技术分享——docker组件编译使用教程

    docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,它可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上,还可以实现 ...