U3D多分辨适配实现原理

 

在游戏开发过程中多种分辨率的UI适配一直都是一个麻烦点,开发当中都是在美术和程序里面的工作量寻求一个平衡点。做UI适配有以锚点定位为主和做UI配文件配置等方案。

锚点定位

 

目前主流的还是以锚点定位为主。锚点定位的方式对于开发来讲比较方便,设计人员定好每个UI要挂在哪个锚点上,就不会去管不同分辨率的显示问题了。每个不同的分辨率都会根据获取的锚点进行UI的显示。不过锚点是有局限性的,设计上需要针对每种分辨率进行显示避规,需要不断的调整锚点的位置,达到不同分辨率都能显示正常,如果没有调整好锚点,那么在不同的分辨率屏幕上就会出现UI异常的情况。锚点定位基本不能做占满横条或竖条的设计,横条和竖条使用锚点就会出现图片显示不全或者屏幕没占满的情况。

UI配置文件

做UI配置文件适配就是针对每个比例的分辨率记录每个UI的大小和位置,然后在游戏运行时读取相应分辨率的UI配置文件来还原适配好的UI。这个做法就不需要像锚点定位那样去规避不同分辨率的设计,但是这个方案修改操作比较麻烦,每次调整都需要对每个分辨率的配置进行调整,人工操作的成本比较高。

以上两种都是比例适配较多,高清(例如NEW IPAD)适配可能就比较麻烦了。如果确实有这样不能拉伸的需求(需要UI非常精致那种),只能做多套UI了,然后用NGUI的retina适配插件做相应适配。不过一般游戏都不需要做到那么精致,直接用960或1024的UI拉伸到2048的程度,虽然有一些毛边,但是还是能够接受的,市面上的NEW IPAD大部分UI都是这样做的。

修改显示分辨率

需要注意的是,如果你不希望UI被拉伸,又不想在高清分辨率手机上显示图标过小,可以考虑下修改手机的显示分辨率。在U3D的Screen类下,有个Screen.SetResolution()函数,可以设置相应的渲染分辨率。IOS导出XCODE之前的build setting的other settings下的target device设置也可以修改IOS相应的分辨率。

修改显示分辨率可以达到你的UI适配效果,假设你觉得这个游戏在高清分辨率的手机跑起来慢的话,修改显示分辨率后,相应的像素渲染便少了很多。从而大大提高游戏的运行帧率。但事实上它还是拉伸了UI,因为分辨率低了,显示屏会出现精度的视网格,所以场景中的3D模型边缘显示锯齿很明显。可以通过在quality setting下的效果开抗锯齿选项来解决问题,但开抗锯齿是挺耗性能的。

在做游戏开发之前就需要确定好UI适配的方案,使用一个适合自己游戏的最优方案来进行设计,既可以达到适配的效果又能优化游戏的性能。

——文章来源:TestBird-APP和手游测试专家

时间: 08-03

U3D多分辨适配实现原理的相关文章

前端移动端的rem适配计算原理

rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位.它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算. 计算原理: 1 屏幕宽为 clientWidth(px). 设计稿宽度为 750 (px), 假设 n = clientWidth(px)/750(px)

屏幕适配的原理

初级游戏开发者通常都会遇到屏幕适配的问题,由于安卓手机屏幕差异很大,不同的手机屏幕大小各不相同,同时屏幕不同分辨率也不同,因此在对手机游戏进行测试的时候,屏幕适配的工作就显得非常重要了. 接下来我们谈谈屏幕适配那些事儿. 不同分辨率对应的文件夹 首先我们知道android工程目录res下有四个文件夹,drawable-hdpi.drawable-mdpi.drawable-ldpi.drawable-xhdpi,主要是为了支持多分辨率的图片.如果你制作的游戏切图是480x800的切图,就应该放到

Android 一种非常好用的Android屏幕适配

前言 网上关于屏幕适配的文章已经铺天盖地了,为什么我还要讲?因为网上现在基本都是使用px适配,即每种屏幕分辨率的设备需要定义一套dimens.xml文件.再加上有些手机还有虚拟按键(例如华为),这样就还需要每个有虚拟按键的设备加多一套dimens.xml文件,再加上平板那些你会发现dimens.xml文件所占的体积已经超过2M了!这绝对不是我们想要的. 我这里要讲的是使用dp来进行适配(Google推荐的也是这种方式),使用这种方式项目中多套dimens.xml文件才占几百K,而且根本不用考虑虚

淘宝——移动端页面终端适配

注:本文参考自:http://www.cnblogs.com/xianyulaodi/p/5533201.html 阅读目录 适配的要求 适配的方法,3个步骤 适配中背景图片的处理 适配的原理解析 摘要:在进行移动端界面的书写的时候,如果把宽度高度或者字体大小全部写死的话,那么在所有手机上看到的大小都一样,存在的问题就是同样大小的字体,或者一个盒子模型, 在大屏幕手机上看起来会有点偏小.比如iphone6PLUS.如果是做成适配的话,就很好的解决了这个问题,大屏幕显示的内容大一点,小屏幕显示的小

cocos2d-x 屏幕自适配

为什么屏幕适配,暂且不说,先看下目前手机的屏幕分辨率,如下: 480*800 // 比如windows phone以及中高端Android机 480*854 //  WFVGA,是480*800的加长版 540*960 // HTC 640*960        // 经典版的iphone 1136*960           // iphone5 1280*720           // 传说中的HD 1280*800 // 三星的9220 1024*768 // ipad 如果我想让我的游

移动端界面适配

本文引自:http://www.cnblogs.com/xianyulaodi/p/5533201.html 摘要:在进行移动端界面的书写的时候,如果把宽度高度或者字体大小全部写死的话,那么在所有手机上看到的大小都一样,存在的问题就是同样大小的字体,或者一个盒子模型, 在大屏幕手机上看起来会有点偏小.比如iphone6PLUS.如果是做成适配的话,就很好的解决了这个问题,大屏幕显示的内容大一点,小屏幕显示的小一点. 所以今天做一个移动端页面适配的小小总结 适配的要求 1.在不同分辨率的手机上,页

H5常用代码:适配方案2

前面的通过视口做适配的方案由于安卓低版本原生浏览器的存在,在许多场合不尽如人意,会在低版本安卓上出现,不缩放,手动缩放未禁止的问题. 于是出现了第二种适配方案,既然通过视口缩放可以兼容,那为什么不直接用CSS3的缩放来做了,因些有以下适配方案,代码如下: <!DOCTYPE html> <html> <head> <title>适配方案2</title> <meta charset="utf-8"> <met

Android AutoLayout全新的适配方式 堪称适配终结者

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49990941: 本文出自:[张鸿洋的博客] 一.概述 相信Android的开发者对于设配问题都比较苦恼,Google官方虽然给出了一系列的建议,但是想要单纯使用这些建议将设备很轻松的做好,还是相当困难的.个人也比较关注适配的问题,之前也发了几篇关于适配的文章,大致有: Android 屏幕适配方案 Android 百分比布局库(percent-support-lib) 解析与

什么是网站适配?

大家对于网站适配技术都很陌生,究竟什么是网站适配,究竟它能为网站带来哪些改变?这里跟大家一起探讨一下. 切图网最近有推出一项永久.不依赖第三方的网站适配服务,为什么是永久.不依赖第三方呢?这是为了区别有些服务商加载一行代码完成适配的方式,切图网每个项目均有专业工程师对代码进行分析,编码的,以确保每个项目的品质. 网站适配又叫网站跨屏幕,亦可以叫做响应式布局,但凡听到这些个字眼的时候,它所代表的其实是一个意思,技术上它的本质叫css3 media query多媒体查询技术,是css3的新特性. c