位置: 编程技术 - 正文

Unity3D关于UIRoot的屏幕适配方法(unity3D关于公共安全内容制作)

编辑:rootadmin

推荐整理分享Unity3D关于UIRoot的屏幕适配方法(unity3D关于公共安全内容制作),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity3d unity,unity3d ui,unity3d unet,unity ulua,unity u3d,unity3d ui,unity ulua,unity3D关于公共安全内容制作,内容如对您有帮助,希望把文章链接给更多的朋友!

转载自: Height和Minimum Height, Maximum Height并不会同时起作用,如果能做到在选择Scaling Style时动态的切换,使用者也许能更清楚它们之间的关系)

1.Scaling Style (缩放类型)

这是一个简单的枚举变量,包括三个枚举&#;

[csharp] view plaincopyprint?public enum Scaling { PixelPerfect, FixedSize, FixedSizeOnMobiles, } (FixedSize和FixedSizeOnMobiles类&#;,并且后者只添加了对ios和android平台的判断,所以前者可以替代后者使用)

这里只讨论PixelPerfect和FixedSize的区别,两者都是针对于所有在此UIRoot之下的UI组件而言的,也可以认为是在此UIRoot下,整个游戏屏幕的尺寸的缩放类型!

2.Manual Height和Minimum Height, Maximum Height (手动高度和最小高度,最大高度)

Manual Height和Minimum Height, Maximum Height不会同时对此UIRoot起作用,当选择Scaling Style为PixelPerfect时,我们需要设置Minimum Height, Maximum Height;而当Scaling Style为FixedSize或FixedSizeOnMobiles时,我们需要设置Manual Height。(这就是我前面吐槽的原因)

3.使用(1)PexelPerfect和Minimum Height, Maximum Height

这个组合主要用于我们期望所有的UI纹理都“尽量”不进行缩放,所谓“尽量”的程度,则是取决于Minimum Height和Maximum Height,Minimum Height表示当设备分别率小于此设置&#;时,根据此设置&#;对UIRoot进行缩放;Maximum Height表示当设备分辨率大于此设置&#;时,根据此设置&#;对UIRoot进行缩放(UIRoot是UI游戏对象树的根,修改UIRoot的缩放,则会影响整棵UI树的缩放)

(2)FixedSize和Manul Height

这个组合主要用于我们期望所有的UI纹理都进行“合适”的缩放,所谓“合适”缩放的原则,则是根据Manual Height设置&#;,当设备分辨率的高度&#;不同于此设置&#;时,则根据其比例(即Manual Height / Screen Height)对整棵UI树的进行“等比”缩放(宽度的缩放比也是此比例&#;),这样,我们就可以做一套资源,在不同尺寸的分辨率最好的“不变形”的适配了

(3)交集

前面两组在什么情况下等同呢?

Manual Height == Minimum Height == Maximum Height

推导过程,呵呵~~

具体可参考UIRoot中activeHeight属性和GetPixelSizeAdjustment的计算过程

4.这也许并不够

基于以上推到,当我们以x为标准分辨率做一套UI资源(也就是选择FixedSize并且Manual Height=),&#;乎可以满足百分之以上的机型了,而为什么是x呢?

既然我们已经容忍在除x之外的其他设备上进行等比缩放了,那为什么不是x呢?

计算一下x的宽高比=1.,x的宽高比=1.5,这就是移动设备的分辨率比例的全部了吗?

Unity3D关于UIRoot的屏幕适配方法(unity3D关于公共安全内容制作)

当然不是,iphone5的比例就要大于1.5,还有各种奇葩的android设备呢,比如夏新的n就是x,宽高比=1.

那为什么以x为标准呢?

因为1.的宽高比,当我们的x的资源到x的设备上时会有什么现象?

根据Manual Height / Screen Height的比例可知,我们需要缩放 / = 1.2倍,假设是一张x的纹理,高度缩放1.2倍变为了,宽度也要相应缩放1.2倍变为(保证等比缩放不变形),也就是说x的资源放到x上反而两边有了黑边,这是我们可以容忍的,我们可以做一个很大的背景或者拉伸,保证UI组件不变形即可,很多游戏都是这么做的,比如植物大战僵尸在iphone5和ipad上看到的背景视野并不一样大!

当放到夏新的机器上呢?

我们需要缩放 / = 1.4倍,宽度 / 1.4 = ,这是可以的,只是看起来更怪一些,因为两边的黑边相对比例更大了( - =的黑边区域)

而我表示android机器的分辨率奇葩到只有想不到,没有做不到的程度,也许宽高比1.7并不是终点,当遇到1.8之后,黑边的相对比例会更大。。。

5.问题又来了

假设我们的游戏类型更适合iphone手机玩,不太适合ipad,所以我希望能以x为标准做一套资源,可以吗?

我只能说不太可以,因为你要在设计UI组件的大小做限制了,为什么需要做限制?

假设我有一张纹理是x大小的,在iphone上铺满整屏,根据我们的设置(FixedSize和Manual Height=),拿到x的分辨率上,高度 / = 0.,为了保证等比缩放,宽度 / 0. = ,不幸的事情发生了, > ,这个UI组件宽度超过了屏幕的宽度,被裁剪了。。。这是我们不能容忍的,或许你可以说我们尽量不做这种尺寸的UI,OK,你可以对UI尺寸加限制,但是当面对android那些奇葩的分辨率的时候,你会发现限制越来越大,这也许会让美术和策划疯掉!

6.解决方案

当我们花上一些时间去观察现在移动设备的分辨率时,虽然奇葩很多,但是还是有一些规律的,规律的在于宽高比而不在于具体尺寸,大体上划分一下宽高比在1.3,1.5,1.7的范围上的居多(基本是全部吧!)即便是再有1.2,1.8的比例也无妨。。。

NGUI为我们提供的方案只有以各种高度为衡量标准是不够的,我们应该加上一种以宽度为衡量标准的缩放类型

而对于UI资源的标准,我们选取x,宽高比为1.5

这样,当我们在兼容大于1.5的尺寸的时候,使用NGUI的现有方案;当我们在兼容小于1.5的尺寸的时候,使用以宽度为衡量标准

也就是说有一个类&#;Manual Width的属性,当小于1.5时,我们使用Manual Width / Screen Width得出整棵UI树的缩放比例!

这样做的好处是“黑边”区域不会太大,并且不需要对UI组件的大小做限制!

Unity3d 杂七杂八小技巧 文章作者:松阳本文出自阿修罗道,禁止用于商业用途,转载请注明出处。原文链接:

Unity3D控件分析之UIWidget 原文:

【三消游戏】第三节、代码梳理和消除功能的判定与完善 usingUnityEngine;usingSystem.Collections;publicclassGameManger:MonoBehaviour{publicCheckcheck;//定义一个Check类型的变量check,并在unity中为其赋值;publicintcolumnNum=;//定义列

标签: unity3D关于公共安全内容制作

本文链接地址:https://www.jiuchutong.com/biancheng/381582.html 转载请保留说明!

上一篇:unity3d减小安装包大小专题(4):剔除重复资源(unity3d2019安装步骤)

下一篇:Unity3d 杂七杂八小技巧(unity 3d online document)

  • 跨区域涉税事项报验是什么意思
  • 技术服务收入属于劳务报酬所得吗
  • 研发支出管理制度
  • 企业所得税季初和季末
  • 小规模纳税人税率有几种
  • 社保次月缴纳上月算不算中断
  • 小规模纳税人印花税是季报还是月报
  • 小企业会计准则以前年度损益调整
  • 企业发行债券的目的
  • 股权变更前账务怎么处理
  • 处置固定资产增值税和所得税报税能一致吗
  • 购买折让
  • 平销返利如何开红字发票
  • 摊销保险费会计分录怎么写
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 出口的进项发票如何记账
  • 个人房产税征收标准
  • 自然人代人开普票合法吗
  • 小微企业开发票优惠政策
  • 小微企业的资产总额看哪里判断的
  • 劳务费个人还需要交税吗
  • 金蝶财务软件录入凭证
  • 成本费用怎么做分录
  • 增值税普通发票红冲之后还能查询吗
  • 没有金税盘怎么查询已开发票
  • 失控发票账务处理
  • 企业研发人员数量在哪里查
  • 进项发票如何抵扣销项发票
  • 营改增之前没有增值税吗
  • info是什么软件
  • PHP:clearstatcache()的用法_Filesystem函数
  • 来料加工交关税吗
  • 企业销售货物收到价款5000元这笔经济业务属于
  • 银行卡透支怎么还
  • gridview用法
  • 固定资产没有发票可以计提折旧吗
  • 增值税税收滞纳金哪里缴纳
  • php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
  • 个体户可以不办公户吗
  • 强化学习之stable_baseline3详细说明和各项功能的使用
  • 【机器学习】前置知识:矩阵的表示与定义 | Identity 身份矩阵 | 逆矩阵和转置 | 标量乘法
  • php页面跳转可以用header
  • 专票地址错了要作废吗
  • Google C++ Style中允许使用的Boost库(1) 程序即人生 博客频道 CSDN.NET
  • 借款利息收入开票
  • 企业年度预算编制流程
  • 业务招待费包括哪些内容和费用
  • 三栏式明细账对方科目有多个怎么办
  • 公司买汽车计入什么费用
  • 交易性金融资产是什么意思
  • 瓶盖再来一次表情包
  • 小规模纳税人是小微企业吗
  • 现金流量表里支付的各项税费包括什么
  • 经济纠纷引发的抢劫
  • 奖金如何做账分录
  • 哪些发票可以报销哪些发票不可以报销
  • 金蝶软件kis标准版操作流程
  • 双倍余额递减法最后两年怎么算
  • 政府奖励我公司的钱
  • 多收客户购置税怎么处理
  • 次年发放的奖金怎么入账
  • excel格式变了怎么办
  • win10屏幕显示
  • win7系统c盘占用空间大
  • win8声音小怎么解决
  • win10累积更新卡在正在下载
  • cocos做游戏
  • android 自定义
  • Python实现mysql数据库更新表数据接口的功能
  • 怎么把perl删除干净
  • jquery焦点
  • shell脚本判断字符串是否为空
  • oracle的服务主要有
  • Unity PlayerPrefs.DeleteAll 无效以及 PlayerPrefs文件保存位置
  • jquery fullpage
  • js如何定义类
  • 国家税务总局财政部公告2023年第11号
  • 改革开放四十年是几几年
  • 18个税种已立法数量
  • 国家发票真伪查验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设