位置: 编程技术 - 正文

Unity项目中UI同学需知的程序相关要点(unity ulua)

编辑:rootadmin

推荐整理分享Unity项目中UI同学需知的程序相关要点(unity ulua),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity i,unity中ngui,unity i,unity中ui界面如何交互,unity里的ui,unity uishader,unity uishader,unity uishader,内容如对您有帮助,希望把文章链接给更多的朋友!

原文地址: Tag加上英文字符串

这样了之后,多张图被打包在一张图里面。

多张UI图通过SpritePacker的打包结果

由于多张图片打包在了一起,根据上面提过的合并drawcall的原因,会大幅减少这些图片带来的GPU消耗。但从上图也可以看出,打包之后,会产生多余的透明区域,所以打包可能带来的坏处就是增大了外存、内存。所以,关键是选择哪些图片进行打包。来规避透明区域的出现。选择规则如下:

不用的图不打包。因为打包的图,就算从不使用,也还是会进入到最终的ipa或者apk里;小的图尽可能打包大图(比如大于x,常见的有UI底图)不打包。因为大图会很有可能产生透明区域;降低需要打包中的分辨率最大的图。不打包的单张UI图片分辨率必须是偶数、很有可能需要是2的N次幂

本方法能为GPU、外存、内存带来好处

按照上面的多张UI图片可以打包在一起做了之后,不打包的图应该是少量的。但由于这些图是独立存在于内存,所以有更严&#;的要求:

单张UI图片分辨率必须是偶数。单张UI图片当有以下任一特点时,分辨率必须是2的N次幂需压缩的单张UI图片。需tiled的单张UI图片。tiled即图片平铺,常用于四方连续UI图。需mipmap的单张UI图片。即多层图片。一般情况下,UI的图片都不需mipmap,所以不用考虑这个。

@程序同学:现在大部分移动设备GPU是支持非2的N次方的。即NPOTSupport.Full或者Restricted的。Full的GPU对任意分辨率的纹理都能直接访问;Restricted的GPU,一般情况下对任意分辨率的纹理都能访问,但对于mipmap、tiled的纹理会把它pad成POT。所以,mipmap、或tiled的非打包单张纹理需强制POT。笔者身边的红米、三星、华为等手机,都支持NPOTSupport.Full,只发现小米3支持NPOTSupport.Restricted,小米3W支持NPOTSupport.Full。

@程序同学:ETC1(4bit/pixel)成功压缩的要求是POT且不带透明通道,否则将以bit/pixel的方式压缩保存;PVRTC成功压缩的要求是POT且方形,否则将以true color(bit/pixel)不压缩保存。常用的方案是,把UI图片打包到一张大图,且大图同时满足ETC1和PVRTC的要求,即POT、且透明通道拆分到大图的下半部、且方形。这需要有特殊的shader对这张大图进行采样:RGB取原本uv、A取uv向下偏移0.5。下半部的Alpha部分可以把Alpha&#;除以3平均分部到RGB通道,采样时把RGB相加作为Alpha,这样有利于ETC1压缩的效果。因大图的制作需要上半部是UI图片的RGB部分、下半部是UI图片的Alpha部分。所以需要自研或获取适合的atlas算法对UI图片进行排版。此时上面提到的Unity自带的Sprite Packer方法将不再适用。排版后的大图的可容忍浪费分辨率是原图的bit/4bit=4倍,或bit/4bit=8倍。

打包的UI图片的分辨率可以是任意的

但依然推荐输出偶数分辨率,避免未来带来不可知的麻烦。

UI最好能用九宫&#;&#;局部装饰实现

本方法能为GPU、外存、内存带来好处

Unity UGUI支持直接使用Sprite Editor直接进行九宫&#;制作

九宫&#;已经是非常常用的UI制作方法。九宫&#;UI几乎是百利无一害,所以希望UI同学能用九宫&#;的尽量用九宫&#;。使用九宫&#;有以下几个&#;得注意的技巧:

九宫&#;UI图片可以做得很小只给正方形的图,而并非上面一个长条形的图如果UI图片内部是低频变化(人话:比较平滑的纹理),依然可以使用九宫&#;如果UI图片内部是高频变化(人话:比较细的复杂纹理),一般情况下就不能使用九宫&#;了但可以把这些高频变化的纹理设计成只在边缘出现,让九宫&#;十字架内依然是低频变化,那这种UI图依然可以九宫&#;切九宫&#;时,边缘部分应尽量细、内部十字架部分应该尽量饱满。这样可以确保这个UI能够使用于非常小的场合而不穿帮字体选择方案

本方法能为外存、内存带来好处,可能为GPU带来好处

在选择游戏字体的时候,除了确保美观程度之外,还需考虑:

字体种类:应当保持在2类以内:用于标题的中文偏设计的字体、用于正文的中文偏正式的字体。如需,可额外加入英文偏设计的字体;字体编码类型:如果是中文字体,需考虑是否GB编码甚至是GBK编码。避免字体出现有些常用中文字没有的情况;在选择字体时,应留意在手机上的表现。比如一些字体比较细,在手机上看不清,到后面需要都加粗加描边,带来没必要的消耗,也带来了之后额外的繁琐的字体相关工作。由于选择了细字体,导致在手机上需要都加粗加描边,带来没必要的消耗(比如overdraw)制作流程UI同学和程序同学一起维护Unity UI资源文件夹

当前的工作流程是美术同学输出了UI图片后,传到FTP,通知程序同学具体路径,程序同学从FTP拷贝资源到UnityUI资源文件夹,为了版本一致,程序同学可能需要对它进行重命名,才用上了一张新资源。

Unity项目中UI同学需知的程序相关要点(unity ulua)

Unity UI资源文件夹里存放着真正采用到游戏的文件夹。这个文件夹事实上已经存在了,但只有程序同学在维护。现在需要UI美术同学、程序同学一起来维护它。这样有以下好处:

Unity的文件夹里,可以直接存放任意&#;式的图片甚至是psd。Unity在构建时才将这些图片转为需要用的&#;式可以直接在Unity看到图片在手机里内存、外存的真正占用方便查找真正在用的UI资源由于这个文件夹的资源是正式且确保资源不重复,所以方便美术同学间协作,防止信息不对称制作了重复资源当有UI小幅修改时,美术直接修改即可。而不是走一个美术修改、传给程序、程序替换的臃肿流程给资源重用落地提供基础

事实上,我们的特效、场景、模型都已经是这样做了,一起维护一个真正采用到游戏的文件夹

资源组件重用

老生常谈、不得不谈。资源重用可以节省策划同学工作量、美术同学工作量、程序同学工作量,节省外存、内存,也节省用户体验学习成本,。如果减法百利无一害,何必狂做加法吃力不讨好。

Flash项目可重用贴图的资源库Unity项目可重用贴图的资源库

一个可以帮助资源重用的思考流程大致是这样的:

UI美术同学如果在接到新UI需求;先想UI的某个组件能不能用资源库里已有UI资源组件来完成;如果能,则重用,仅仅在Photoshop里制作示意图,不输出该UI组件资源(此时,如果可以形成工具和规则,帮助UI美术同学将psd导出成prefab,将有效提高UI合入效率。《独立防线》项目组正在往这个方向尝试);如果不能,才设计新UI组件资源;同时,新资源也遵循可重用规则;新资源归档回资源库;多次重复1-5步后,资源库会越来越容易满足未来的新UI的需求。适配设备分辨率的UI制作思路接近:9的iPhone5(x)的关卡界面接近1:1的iPad Retina(x)的关卡界面

最近新出的手游为了更好的体验,都采取了填满设备屏幕的分辨率适配的UI方案。所以要求策划同学、UI同学在设计时,就要考虑分辨率适配问题。而并不能仅仅瞄准一款热门设备比如iPhone5进行设计。

Unity UGUI有很好的UI适配方案。概括描述如下:

矩形的原点都在左下角。3个重要的矩形:实在存在的父矩形、用于辅助的anchor矩形、实在存在的子矩形(当前矩形)。父矩形内部包含了anchor矩形和子矩形。

下列图中,外框表示父矩形、“四叶花瓣尖”组成anchor矩形、蓝点表示子矩形。

图:anchor矩形四角跟父矩形四角一一对应。即归一化距离(即距离占父矩形宽或高的比例)固定。对应的两个角之间就好像用橡皮筋绑起来一样。比如图中左上花瓣跟左上角距离总是%宽、%高。注意到,图中anchor矩形四角聚在一起,这样父矩形大小变化时,anchor矩形大小不会变化。图:anchor矩形四角跟父矩形四角一一对应。对应的两个角之间的归一化距离(即距离占父矩形宽或高的比例)固定。对应的两个角之间就好像用橡皮筋绑起来一样。比如图中左上花瓣跟左上角距离总是%宽、%高。注意到,图中anchor矩形四角各自分开,这样父矩形大小变化时,anchor矩形大小也会变化。图:子矩形四角跟anchor矩形四角一一对应。对应的两个角之间的距离固定。对应的两个角之间就好像用铁棒锁起来一样。比如图中左上蓝点跟左上花瓣的距离总是像素宽、像素高。注意到,图中anchor矩形四角聚在一起,这样父矩形大小变化时,由于anchor矩形大小不会变化,所以子矩形大小不会变化。图:子矩形四角跟anchor矩形四角一一对应。对应的两个角之间的距离固定。对应的两个角之间就好像用铁棒锁起来一样。比如图中左上蓝点跟左上花瓣的距离总是像素宽、像素高。注意到,图中anchor矩形四角各自分开,这样父矩形大小变化时,由于anchor矩形大小也会变化,所以子矩形大小也会变化。

总之,anchor矩形四角跟父矩形四角一一对应,对应的两个角之间的归一化距离(即距离占父矩形宽或高的比例)固定;子矩形四角跟anchor矩形四角一一对应。对应的两个角之间的距离固定。

通过这样的关系,就可以实现各种不同的适配方案。比如以下这些。

当四花瓣聚在一起时,父矩形改变大小,子矩形大小不会改变。位置会锁定在归一化距离。

横向纵向皆不拉伸

当四花瓣&#;子横向分开时,父矩形改变大小,子矩形横向大小会相应改变。

横向拉伸、纵向不拉伸

当四花瓣&#;子横向纵向皆分开时,父矩形改变大小,子矩形横向纵向大小皆会相应改变。

【VR】Leap Motion 官网文档 HandController(手部控制器) 前言:本系列译文是为迎合UnityVR的热潮与大家的学习需要,推出的针对Unity方向的LeapMotion官方文档中英对照翻译。本篇第五篇《HandController(手部控制

[置顶] (二十九)unity4.6学习Ugui中文文档-------运行时创建Scroll-lists 孙广东.5.首先要滚动和list形式存储内容。使用ScrollRect组件。就可以滚动了,但是有时候我们不希望,item超过区域还显示:就要使用Mask组件,

unity克隆抛物线型金币的方法 1、准备好我们要克隆的对象:金币publicGameObjectcoin;2、计算出抛物线的函数并按照函数算出克隆的位置:///summary///克隆抛物线型金币的方法////summary///par

标签: unity ulua

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

上一篇:unity5.0安卓开发环境配置(unity安卓游戏开发)

下一篇:【VR】Leap Motion 官网文档 HandController(手部控制器)(vrbrations)

  • 建筑业预缴所得税怎么计算
  • 饮食企业简介
  • 待摊费用和无形资产摊销
  • 其他应付款借方余额怎么调整
  • 劳务公司如何避税与避费
  • 2019未达起征点免税分录
  • 银行付款回单怎么看
  • 物业公司可以开租赁发票吗
  • 专用存款账户需要备案吗
  • 学生是纳税人吗为什么
  • 外资企业订单外放,员工待岗合法吗
  • 长期借款业务的思维导图
  • 出租不动产房屋交什么税
  • 预付卡没用完的可以退吗
  • 收据注明实际到账时间
  • 消费税增值税如何调整?
  • 在杂志上发表论文
  • 文化事业建设费的征收范围
  • 91开头的税号是什么
  • 汇算清缴需要调增的费用
  • 机动车发票冲红怎么操作
  • 个人房源出租
  • 红字信息表没有编号
  • 主营业务收入增速怎么算
  • 房产企业可计入开发成本的利息如何确定?
  • 进项和销项的会计分录
  • 护建设税和教育费附加?
  • 个人从价计征房产税
  • 如何修复在感情中受的伤害
  • 计提的跌价准备销售时怎么处理
  • PHP:mb_ereg_search_getpos()的用法_mbstring函数
  • win10文件夹状态已共享怎样取消
  • php imagestring
  • inclooder.exe
  • 电脑开机按f8出现please select
  • 怎样把htm文件转成excel
  • 递延所得税资产借贷方向
  • auto.js 教程
  • php面向对象优点,缺点
  • 文化体育用品批发城有哪些
  • 视觉slam有多难
  • java动态代理的实现方式
  • 本期应纳税额是怎么算
  • 月末库存商品成本计算
  • 一万元,两分的利息,一年利息是多少
  • windows7的安装方式
  • 农副产品普通发票可以抵扣增值税吗
  • 收回上年度拨款怎么做账
  • 企业所得税资产总额季初季末怎么填
  • 开承兑需要多少手续费
  • 个体户如何做账?
  • 固定资产清理营业外支出可在税前扣除?
  • 银行扣款能撤回吗
  • 银行承兑汇票背面怎么填写
  • 收到先征后返的增值税计入哪里
  • 税控盘费用进什么科目
  • 对公付货款没有收到发票如何处理
  • 增值税结转是月结转还是年度
  • 建账的要点
  • 商业企业购入商品
  • mysql命令行导出结果
  • centos6.10安装教程
  • 数据库的行和列的叙述
  • mysql数据库基础与实践课后答案
  • navicat连接mysql时出现1045错误的解决方法
  • xp系统怎么取消开机登录界面
  • centos安装软件教程
  • ubuntu 18.04 16.04
  • python sed
  • fsrec.sys
  • 电脑window8系统怎么样
  • win8.
  • jquery插件大全
  • shell监控脚本例子大全
  • nodejs搭建网站
  • javascript面向对象编程指南第三版
  • 怎么知道自己的城乡属性
  • 耕地占用税林地有减免吗
  • 五联发票每一联的作用
  • 个人所得税法全文完整版2021实施细则
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设