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

Unity UI适配规则和对热门游戏适配策略的拆解

前言

本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参考。

基础概念

设计分辨率:设计分辨率是指在游戏开发中用来制作游戏资源(如图形、UI元素等)的基准分辨率。设计分辨率通常是一个固定值,游戏的所有资源都是基于这个分辨率进行创建和设计的。设计分辨率的选择对游戏的视觉效果和用户体验至关重要。

参考分辨率:参考分辨率是指在Canvas Scaler组件中设置的用于设计UI的目标分辨率。它代表了游戏UI在这个分辨率下的理想显示效果。Canvas Scaler会根据实际运行时的屏幕分辨率和参考分辨率的比例来缩放UI元素,以便在不同分辨率下尽可能保持一致的UI布局和外观。

高度适配:在高度适配时,游戏的UI元素和场景内容会根据屏幕的垂直高度进行调整。这意味着无论屏幕的宽高比如何,游戏的内容始终会填充整个屏幕的垂直空间,而水平方向可能会存在一些留白或被裁剪。

宽度适配:在宽度适配时,游戏的UI元素和场景内容会根据屏幕的水平宽度进行调整。这意味着无论屏幕的宽高比如何,游戏的内容始终会填充整个屏幕的水平空间,而垂直方向可能会存在一些留白或被裁剪。

Unity中相关设置

Canvas下的Canvas Scaler可以修改Reference Resolution(参考分辨率)。另外可以将Screen Match Mode设置为Match Width Or Height。代表可以进行宽度适配或者高度适配。宽度适配的话,将Match值设置为0,高度适配则是设置为1.

在Game栏可以设置实际显示的分辨率大小,可以通过该设置模拟各种分辨率的设备。

常见屏幕尺寸

下面是收集了市面上一些常见的设备以及极端长宽比设备的屏幕大小

iphoneX及以后的刘海屏设备,长宽比均为19.5比9(适配换算后为1560:720)。最长的设备是目前主流的安卓设备,长宽比是20:9(1600:720)。平板方面最宽的设备为4:3(1280:960)。

各种分辨率下的显示区域对比

下图绘制了常见机型的分辨率显示的区域。白色区域的分辨率为720*1280。红色的分辨率为720*1600,灰色区域的分辨率为720*1560,绿色区域的分辨率为960*1280。同时为了方便起见后文中均以720*1280(720P)为设计分辨率进行讨论和拆解。实际在开发过程中,可以根据项目的要求,选择更高或者更低的设计分辨率进行设计。比如画面要求高,并且面对高端设备的用户,可以采用1080*1920(1080P)的设计分辨率出图。

热门游戏的适配策略拆解

本次拆解,主要是参考了Royal Match和Monopoly GO!两款游戏,两款游戏分别在2024年1月全球热门移动游戏收入榜的2,3名。Royal Match的首次上线时间为2021年,Monopoly Go则为2023年,并且两款游戏均保持着较高的更新频率。通过拆解这两款游戏,可以大致了解当前欧美休闲厂商在UI适配上的策略,值得学习和借鉴。

RoyalMatch

UI部分

下面是对局部分的UI,左侧为720*1280右侧为720*1600。roy match的ui元素,都是在720*1280的分辨率下设计的。并且尽可能地充满整个屏幕。然后在屏幕高于1280的情况下,宽度适配,直接拉长背景。顶部和底部的UI都会贴边摆放。同时顶部UI会为刘海(挖孔)预留部分空间。

下图中左侧为720*1280,右侧为720*1560(iphonexs)。

UI元素同样是宽度适配。底部专门为iphone的Home Indicator保留了35个像素。

顶部UI则是保留了52个像素。

下图中左侧为iphone8p的截图,右侧为ipad mini6的截图,Ipad的适配则比较特别,经过缩放对比后发现,UI所在区域的大小为720*1496。底部为Home 导航额外预留了一块空间。底部UI的背景通过九宫格拉伸,宽度和高度均进行了缩放。但是按钮部分,还是按照720的宽度进行排布。并没有等间距摆放充满整个屏幕的宽度。由于ipad没有刘海,顶部UI直接贴顶边,同样也是在720的宽度内摆放.

背景图部分

下面左侧是720*1280(iphone 8p)的游戏内截图,右侧为720*1600的截图。通过缩放对比发现,右侧图片是左侧图直接等比缩放得到

下面的图则是ipad的背景缩放后与iphone 8p的图缩放后的对比。可以看到ipad的背景是要比720要更宽一些

最后通过解包royal match的资源后,找到图集中的实际背景图

实际的大小为1736*2894,换算后的比例为768*1280

monopoly go!

UI部分

下图中左侧为720*1280,右侧为720*1560(iphonexs),同样是采用了宽度适配的方式。顶部栏在布局的时候为刘海屏留出了47个像素

底部为Home Indicator保留了52个像素。同样是采用UI拉九宫格的方式填充空白部分

下面第一张图中左侧是840*1280(ipad mini)右侧是720*1280(iphone 8p)。pad使用了高度适配,宽度拉伸的方式。

顶部和底部UI贴边摆放。同时底部也为home导航额外预留了一块区域,整体UI有所上移。顶部栏使用了九宫的方式左右拉伸了。底部背景缩放后填充整个空白区域。不同于RoyalMatch只在720的宽度内摆放按钮。大富翁go的顶部和底部的按钮,都按照缩放后的宽度,在840的区域内摆放。底部UI元素均匀摆放,顶部UI贴边摆放。

背景图部分

 从左到右的分辨率分别是840*1280(ipad mini6),720*1280(iphone8),720*1560(iphonexs),720*1600(iqoo neo 8pro)

对比之后,发现大富翁go应该是只用了一张720*1560的背景图。在pad上直接等比缩放。高度大于1560的设备,在刘海部分放置了一个黑条。Monopoly Go的标题则是单独切图,按照上面的UI适配规则放置在背景图上。

实际拆包后发现,使用的图片大小为487*1024.换算后为720*1513。通过底部UI填充的方式覆盖住1560的高度

总结

对比RoyalMatch和大富翁go。总结出以下几个共同点和不同的地方。在后续的UI设计中,可以参考他们的共同的部分进行资源的制作。不同部分的处理方式,需要与美术和产品沟通后,确定最后采用的策略。

共同点:

1.会根据设备的不同额外为刘海屏和Home导航预留部分空白区域,不会在该区域内摆放可以操作的UI。

2.顶部和底部的UI背景都会设计成可以进行九宫拉伸的背景。并且根据设备的不同填充空白区域。

3.UI的安全区域均为720*1280,确保了目前市面上最小设备能够完整展示UI。

4.在手机上,均采用宽度适配,高度拉伸的方式进行UI的摆放

不同点:

1.两个游戏为刘海屏和Home导航预留空白部分的像素不同。

2.在遇到比1560还要更长的设备时,royal match采用的是缩放背景图,填充空白区域的策略。大富翁go则是在顶部放置一个黑条覆盖空白区域

3.在ipad上大富翁go依旧是按照720*1280的分辨率,通过高度适配宽度拉伸的方式摆放UI。Royal match的设计分辨率则产生了改变,猜测是在720*1496的分辨率下进行高度适配。

4.大富翁go的全屏背景只使用了一张720*1560的图,然后根据设别不同进行等比例缩放。Royal match则是使用768*1280的背景,然后再进行等比缩放。

5.Royal Match在横向摆放UI时,仅在720的宽度内进行摆放,并不考虑宽度大于720的情况。大富翁go在宽度大于720时,则是会根据设备的宽度均匀(或者贴边)摆放UI。

创作不易,如果觉得这篇文章对你有所帮助,可以动动小手,点个赞哈,ღ( ´・ᴗ・` )比心

相关文章:

Unity UI适配规则和对热门游戏适配策略的拆解

前言 本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参…...

嵌入式学习day25 Linux

进程基本概念: 1.进程: 程序:存放在外存中的一段数据组成的文件 进程:是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡 2.进程相关命令: 1.top 动态查看当前系统中的所有进程信息(根据CPU占用率排序&a…...

Oracle数据泵跨大版本迁移数据库

Oracle数据泵跨大版本迁移数据库 source库导出元数据传输dump和数据文件到target库target库导入数据库迁移后的工作 🦈场景:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。 🤔分析:由于是跨数据库大版本&…...

如何在Win系统从零开始搭建Z-blog网站,并将本地博客发布到公网可访问

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员,自己搭建网站制作网页是绕…...

sawForceDimensionSDK安装,sigma7+ros

force dimension的sdk中没有关于ros,借助开源的sawForceDimensionSDK实现对于数据的封装和可视化,方便后续使用 链接: GitHub - jhu-saw/sawForceDimensionSDK 具体步骤: 安装qt和ros,官网下载Force Dimension SDK …...

全量知识系统问题及SmartChat给出的答复 之3

Q8. 进一步,请展示如何使用这些技术来衡量、评估或适应不可避免的不匹配的知识汤问题的更进一步的全面代码。 为了处理不可避免的不匹配的知识汤问题,我们可以引入一些技术方法来衡量、评估或适应这种情况。 下是一个更进一步的全面代码示例&#xff0…...

【常用的 SVN 命令及简要示例】

常用的 SVN 命令及简要示例,供您参考: 检出代码: svn checkout https://svn.example.com/project/trunk提交修改: svn commit -m "Commit message"更新代码: svn update创建分支: svn copy https://svn.example.com/project/trunk \https://sv…...

ISP代理是什么?怎么用?

在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…...

微服务之qiankun主项目+子项目搭建

主项目使用history,子项目使用hash模式 1. 下载安装"qiankun": "^2.10.13"2. 手动调用qiankun,使用vue脚手架搭建的项目1. 主项目配置(我使用的是手动调用乾坤,在指定页面显示内容)1. 要使用的页面中引入乾坤…...

双非二本找实习前的准备day2

学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了 今日碎碎念: SQL有些题用到的知识感觉不会出现在…...

快速搭建宠物医院服务小程序的步骤,无需编程经验

如果你是一家宠物医院或者宠物服务机构,想要拥有一款方便用户预约、查询信息的小程序,那么乔拓云网提供的轻应用小程序是你的不二选择。下面将为你详细介绍如何轻松打造宠物医院服务小程序。 1. 进入乔拓云网后台,点击【轻应用小程序】中的【…...

从0开始python学习-53.python中flask创建简单接口

目录 1. 创建一个简单的请求,没有写方法时默认为get 2. 创建一个get请求 3. 创建一个post请求,默认可以使用params和表单传参 4. 带有参数的post请求 1. 创建一个简单的请求,没有写方法时默认为get from flask import Flask, request# 初始化一个flask的对象 ap…...

如何怎麼搭建高效的爬蟲全球代理IP池?

爬蟲技術可以幫助我們從各類網站上獲取大量的數據資訊,但常常會遇到IP被封鎖的問題,這就是我們需要搭建全球代理IP池的原因。那麼,如何搭建一個高效的IP代理池呢? IP代理池指什麼? 首先,我們需要明白什麼是…...

FinalShell连接Linux

远程连接linux 我们使用VMware可以得到Linux虚拟机,但是在/Mware中操作Linux的命令行页面不太方便,主要是: 内容的复制、粘贴跨越VMware不方便 文件的上传、下载跨越VMware不方便 不方便也就是和Linux系统的各类交互,跨越VMwar 到Linux操作系…...

数据分析Pandas专栏---第十一章<Pandas数据聚合与分组(1)>

前言: 数据聚合和分组操作是数据处理过程中不可或缺的一部分。它们允许我们根据特定的条件对数据进行分组,并对每个组进行聚合计算。这对于统计分析、汇总数据以及生成报告和可视化非常有用。无论是市场营销数据分析、销售业绩评估还是金融数据建模,数据…...

【Linux】将程序的输出显示到屏幕,同时写入到log文件

1. 将程序的输出显示到屏幕,同时写入到log文件 nohup python -u main.py 2>&1 | tee -a log.txt &nohup 放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进…...

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下: -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…...

【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现

1,视频地址 【wails】(4):使用wails做桌面应用开发,整合chatgpt-web项目做前端,进行本地开发,web端也可以连调,使用websocket实现 2,演示效果 启动先是报500 错误&#…...

八股文打卡day24——数据库(1)

面试题:左连接和右连接的区别? 我的回答: 左连接的SQL语句是:左表 left join 右表 on 连接条件,表示以左表为基础,将左表的的所有记录与右表进行连接。即使右表中没有与左表匹配的记录,左连接…...

robots.txt 文件规则

robots.txt 是一种用于网站根目录的文本文件,其主要目的在于指示网络爬虫(web crawlers)和其他网页机器人(bots)哪些页面可以抓取,以及哪些页面不应该被抓取。可以看作是网站和搜索引擎机器人之间的一个协议…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

微服务通信安全:深入解析mTLS的原理与实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...