[UnityUI]UGUI自适应

2023-11-14

关键点:

0.自适应的测试:通过设置多种的屏幕大小进行测试,测试时最好要打开Maximize on Play,在屏幕放大的情况下容易观察自适应情况



1.所谓的自适应,就是:

a.保持相对位置不变。例如UI设计在屏幕的左上角,那么在各种的分辨率下都应该在左上角

b.保持宽高比例不变。由于分辨率有很多种,所以保持宽高等比例缩放是做不到的,要么是宽拉伸缩放的程度大些,要么是高拉伸缩放的程度大些


2.在UGUI中,可以通过设置UI的描点来设置UI的相对位置;可以通过设置Canvas下的Canvas Scaler来设置UI的缩放比例(Canvas下的Canvas是用来处理UI遮挡关系的)


3.Canvas Scaler组件:

a.当UIScaleMode为Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)

b.当UIScaleMode为Scale With Screen Size时,相当于使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值。在做自适应时,一般要先选择一种比较主流的分辨率(即比较多的机型都采用这种分辨率)进行UI的设计,例如采用1024x576,在这里就是设置Reference Resolution的值了。


然后就是Screen Match Mode这个东西了:

当值为Match Width Or Height时:当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。例如设置屏幕为800*600,然后改变为800*300,屏幕高度变小了,但UI并没有进行缩拉;同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响

当值为Expand时:举个例子,设计了一个button宽高为200*100,即宽高比为2:1,放在4:3的屏幕内;然后把这个button放在16:9的屏幕内,显然地,此时button是不能进行等比例的缩放的,即无法保持2:1的宽高比了,Expand的意思就是尽可能地使UI拉伸来适应屏幕

当值为Shrink时:同理,就是尽可能地使UI缩放来适应屏幕


4.一般来说,比较不错的设置就是:

Canvas Scaler 选择 Scale With Screen Size

Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[UnityUI]UGUI自适应 的相关文章

  • Unity中射线Ray和RaycastHit的简单介绍

    射线是在三维世界中从一个点沿一个方向发射的一条无限长的线 在射线的轨迹上 一旦与添加了碰撞器的模型发生碰撞 将停止发射 我们可以利用射线实现子弹击中目标的检测 鼠标点击拾取物体等功能 1 Physics Raycast public sta
  • 图像相关算法整理

    图像相关算法整理 1 HE算法 灰度直方图均衡算法 原理 将原始图像的灰度直方图从比较集中地某个灰度区间变成全部灰度范围内的均匀分布 步骤 1 遍历每一帧图像中的所有像素 记录每个灰度值出现的像素个数 2 统计每个灰度值占总像素的百分比 即
  • seaborn.heatmap操作手册

    本文转自seaborn heatmap官方操作手册 http seaborn pydata org generated seaborn heatmap html heatmap很好 很强大 seaborn heatmap seaborn0
  • 自学微信小程序开发第九天-关于分包

    自学微信小程序开发第九天 关于分包 分包前后的项目构成 分包的加载规则 文件分配 分包的配置定义 分包的一些原则 打包原则 引用原则 分包举例 独立分包 独立分包的应用场景举例 声明独立分包 进入独立分包页面 分包预下载 分包指的是把一个完
  • Python 中的八大关键要素

    阅读本文需要 10 分钟 前言 学习任何一门语言之前 你得先了解它的整体架构 知道它的思想 了解它的关键要素 一门语言学到后来你会发现 就像是在剥茧抽丝一般 越是深入越是发现其奥妙之处 Python 中的八大关键要素 Python 是一种D
  • 关于Unity中的NGUI和UGUI

    一 用Unity开发2D游戏 有三套关系 1 GUI Unity本身自带的GUI 2 NGUI 以前在Unity中广泛来做2D的 是第三方的包 需要安装 3 UGUI Unity5 X后 其实是Unity4 6以后 Unity找到NGUI的
  • Java中方法的学习

    目录 Java中的方法定义 设计方法的原则 方法的命名规则 代码实现 方法调用 方法的重载 方法学习不知死过多少次 还让我学是吧 你没完了哈 来 来 来 咱们一起来分析 老师 前面的关键字我讲过吧 数据类型还用说嘛 方法的定义格式我说过吧
  • unity3d 给模型添加刚体后、或者角色控制器后下坠

    1 给模型添加一个刚体后 还要给模型添加一个碰撞器 人和地面的话 要注意地面有没有碰撞器 有的话注意地面碰撞器的Mesh网格是不是Null 还有
  • Unity角色控制器CharacterController的简单介绍

    角色控制器 CharacterController 首先 角色控制器没有碰撞效果 这是和刚体的区别 不像刚体可以给其力 如果想使人物移动 直接复制官方文本中的CharacterController下的Move 方法 前台添加 Charact
  • unity游戏中,摄像头发射红光,阻止Player前进的解决方法

    1 在摄像机下面挂一个空物体 空物体上加Light灯光 type shot intensity 强度 cookie 放灯光形状的图 2 然后在灯光下加一个灯光碰撞器检测 挂在空物体的子物体 不勾选Mesh Renderer 做OnTrigg
  • 软件测试自学怎么学?

    很多朋友想要入行软件测试 但是都不知道该怎么学 抽个时间简单的给大家说下 对于0基础的朋友 应该怎么去学习软件测试 学习软件测试有2条路可以选 1 最省事的当然是找个靠谱的培训机构去培训啦 你就什么都不用想了 跟着培训结构认真的学习就行了
  • netcat 的使用教程

    软件准备 windows访问 netcat 1 11 for Win32 Win64 下载 linux apt install netcat 命令格式 nc 参数 主机名称 端口 参数 nc h c
  • 测试中BUG定义、测试BUG的等级划分、Bug流程以及Bug解决优先级

    一个优秀的软件测试师不仅仅能够发现软件中的bug 还能分析出bug产生的原因 总结了一些软件测试入门必须要了解和学习的BUG基础知识 主要包括BUG定义 测试BUG的等级划分 Bug流程以及Bug解决优先级等内容 下面一起来梳理一遍这些基础
  • java小笔记,List实体类对象的去重

    java小笔记 List实体类对象的去重 去除重复的数据 ArrayList lt 实体类 gt collect orderPOList stream collect Collectors collectingAndThen Collect
  • 阀门与压力表同步代码

    using System Collections using System Collections Generic using UnityEngine public class Mmmmmm MonoBehaviour float sum
  • [UnityUI]UGUI自适应

    关键点 0 自适应的测试 通过设置多种的屏幕大小进行测试 测试时最好要打开Maximize on Play 在屏幕放大的情况下容易观察自适应情况 1 所谓的自适应 就是 a 保持相对位置不变 例如UI设计在屏幕的左上角 那么在各种的分辨率下
  • STM32如何利用串口发送接收数据

    STM32如何利用串口发送接收数据 我现在计划利用STM32F103X的串口对迪文屏发送及接收数据 手中硬件 正点原子开发板 旗舰版 迪文屏 4 3寸 电脑 软件 MCU程序下载 FLYMCU 串口助手 XCOM 迪文屏配置 DGUS TO
  • 从头学编程:零基础入门指南

    文章目录 前言 一 编程的基础概念 二 选择一门编程语言 三 学习编程基础 四 掌握编程工具 五 参与开源社区 七 不断练习和实践 八 总结 关于Python技术储备 一 Python学习路线 二 Python基础学习 1 开发工具 2 学
  • 发现新大陆

    csdn很久没有发博客了 当发现博客园可以进行一些骚操作之后 而CSDN又存在很多限制 相比较下 毅然选择了博客园 博主博客园首页链接地址 https www cnblogs com twq46 如果有想继续看博主的分享可以访问该链接
  • 英语学习(看病篇)

    一 预约医生 1 基本病症 1 I feel terrible 我感觉不舒服 2 I ve been vomiting all night 我昨天吐了一晚上 3 I have diarrhea 我腹泻 4 使用医疗词汇 搭配动词 have

随机推荐