当前位置: 首页 > news >正文

【Unity 100个实用小技巧】 UI分辨率适配

UI分辨率适配

学习实际项目中,分辨率适配的方案,基础版本。
以下适配以720*1680为基准适配

具体操作

在这里插入图片描述

  1. Canvas ScalerScreen Match Model 设置为Match Width Or HeightMatch设置为0

这个设置,是以宽为基准进行分辨率适配

  1. 其实在这么设置以后就基本已经完成分辨率适配了,但是还有一个问题

问题

在这里插入图片描述

  1. 描述:序号1设置了以最下边为基准,但是我的背景图是1680,这种就导致了超出了背景图边界。
  2. 解决方案:在Canvas下有一个RectTransform的物体,控制他的offsetMin和offsetMax可以解决这个方案
  3. 设置完的结果如下在这里插入图片描述
  4. 从图上看,对于1680意外的可以用黑边补齐,制作UI面板时候,就可以随意的使用锚定的方式,而不会影响显示效果,代码如下:
public class MyTest : MonoBehaviour
{private RectTransform  m_RectTransform;private float m_DesignWidth = 720;private float m_DesignHeight = 1280;private void Awake(){m_RectTransform = GetComponent<RectTransform>();}// Start is called before the first frame updatevoid Start(){//实际分辨率宽高为1290*3500,通过计算得出设计分辨率为1953float h = 720 * Screen.height / Screen.width; //Canvas的高Debug.LogError(h);if (h>1680){// 因为我假设的背景分辨率是1680,所以 会多出差值,//然后差值平分,在分别给offsetMin和offsetMax设置float delta = h - 1680;float halfDelta = delta / 2;m_RectTransform.offsetMin = new Vector2(0, halfDelta);m_RectTransform.offsetMax = new Vector2(0, -halfDelta);}}// Update is called once per framevoid Update(){}
}

提示

为个人理解,如有不对请指出,随时修订

更新

2024-10-12 初次发布


http://www.mrgr.cn/news/48602.html

相关文章:

  • Jenkins---01
  • 项目管理的完整流程——你知道吗?
  • 基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)
  • STL11——手写一个简单版本的multimap(包含multimap的特点及基本用法)、set家族与map家族的对比(思维导图)
  • 【Java小功能】SFTP上传限速
  • Linux云计算 |【第五阶段】ARCHITECTURE-DAY1
  • 雷池社区版本SYSlog使用教程
  • 损失函数和梯度之间是什么关系
  • Unitree 3. Low level控制
  • 【项目】五子棋对战测试报告
  • metahuman如何导入UE5
  • 福建谷器参加泉州市中小企业数字化转型试点工作启动会
  • kubernetes详解
  • modelscope系统中 微调工程的forwardbackwardoptimizer调用流程
  • U盘有盘符却难开启?数据恢复全攻略
  • 喜讯∣企企通荣登“2024深圳行业领袖企业100强”榜单,彰显发展新质生产力的硬核实力!
  • AI绘图如何变现,看完这篇保姆级教程,你也会了!
  • 【C++】——继承(下)
  • 【计算机网络】详解IP协议网段划分路由转发子网掩码网络号
  • 宠物空气净化器选哪个牌子好?2024年度宠物空气净化器热销榜单揭晓!