游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2887|回复: 0

屏幕适配实用技巧

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2019-3-21 15:54:33 | 显示全部楼层 |阅读模式
1.jpg

大家好,我又双叒叕来了。

image001.jpg

今天给大家带来的不是一个特定的小项目,而是对新手来说很有用的一些技巧。

屏幕适配:简单说,就是将UI以适当的尺寸显示在屏幕上的适当位置。

比如我们在手机上运行一个小游戏,打开它的菜单栏,一般都是如下画风:

image002.jpg

如果这款小游戏不做屏幕适配,换一个手机,那就有可能是这个样子:

image003.jpg

可以看到菜单栏信息显示不完整,这对于用户来说显然是不人道的,那么我们就要通过为UI做屏幕适配让菜单栏在不同的手机上都能显示完整信息。

手机的不同,在这里其实就是分辨率和屏幕比例的不同,学习屏幕适配之前,需要了解一些基本概念:

像素:构成图像的最小单位。

如果把一张图片,放大后就会看到,其实它是由许多小方格组成:

image004.jpg

每一个小方格就是一个像素,同样的画面像素越多,图片越精细:

image005.jpg

分辨率:这里是指屏幕分辨率,即显示器所能容纳的像素数量。

例如一个显示器的分辨率是320*480,那么它表示横着能放320个像素,竖着能放480个,总共能放153600个像素。

屏幕比例:屏幕宽高比

像素的长宽是一样的,所以不同分辨率的屏幕会呈现出不同宽高比。

image006.jpg

以iPhone为例,部分机型的分辨率如下:

image007.jpg

我们可以根据这些在Unity的Game界面添加新的屏幕格式:

image008.jpg

点击OK,根据固定分辨率生成一个新的屏幕格式:

image009.jpg

同样的方式,我们做许多不同尺寸的屏幕格式:

image010.jpg

那么我们就先来做一个能够适配与以上屏幕格式的UI吧:

1.首先搭建UI,从高往低进行适配:

image011.jpg

UI适配三原则

—不出界

—不遮挡

—不变形

image012.jpg

2.要让UI停留在固定位置就需要使用到锚点Anchors,本篇文章用到的锚点知识并不多,只需要把UI固定一下位置即可,要想更多了解锚点知识,有篇文章很不错:

Unity进阶技巧-RectTransform详解www.jianshu.com

3.设置Canvas的CanvasScaler组件:

image014.jpg

4.然后将屏幕分辨率调小:

image015.jpg

甚至可以直接匹配到横屏,虽然布局很难看,所以横屏和竖屏还是要分开匹配的好。

image016.jpg

可以看到,UI虽然和屏幕做到了匹配,但是尺寸有变小的趋势,这也是为什么一开始要从高分辨率往下匹配的原因,如果反过来从低到高进行匹配,UI则会逐渐变大,那就不敢保证UI不出界了。

背包的适配

如果是背包系统,用以上方式可能不太适合,特别是当我们的背包要追求以下效果时:

image017.jpg

在以上需求中,需要让物品栏UI跟随屏幕变大变小,但装备图片会根据物品栏大小自动排列,我们下面就来做背包适配:

1.将刚才的UI都禁用,创建一个ScrollView,调整好位置大小:

image018.jpg

2.将横竖滑动条都删除:

image019.jpg

3.设置ScrollRect组件:

image020.jpg

4.为Content添加GridLayoutGrounp(自动布局)组件和ContentSizeFItter(控制UI宽高)组件:

image021.jpg

5.锁死ScrollView四个边距:

image022.jpg

6.在Content内添加装备图片作为子物体:

image023.jpg

7.这时我们改变屏幕尺寸,就能达到我们想要的效果啦:

image024.jpg

总的来说,以上内容属于比较入门级的,不过解决一些简单的适配没啥问题。之后如果有机会,再来为大家分享更多技巧。

照样怒宣传一波:想系统性学习游戏开发、学习Unity开发的,欢迎围观:


http://levelpp.com/


在线的教学视频:https://space.bilibili.com/38043731/#/


以及QQ交流群:869551769


作者:四五二十
专栏地址:https://zhuanlan.zhihu.com/p/42779882

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-24 11:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表