位置: 编程技术 - 正文

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)

  • 减少实收资本需要缴纳什么税
  • 企业筹集资金的最常见及最主要的方式是()
  • 金税系统维护费可以全额抵扣吗
  • 往法人账户转备用金
  • 支付境外特许权所得需要交什么税
  • 税费返还如何处理
  • 公司车子的保养费怎么算
  • 其他应付款在现金流量表中应该填哪里
  • 专票开票出框可以改吗
  • 印花税计入税金及附加什么时候开始
  • 税前所得税怎么算
  • 一般纳税人的工资可以抵扣吗
  • 停车费专用发票可以抵扣进项税吗
  • 公司将自产产品奖励员工
  • 企业取得的哪些成果
  • 进项票也要缴纳印花税吗
  • 收到委托代销清单的会计分录
  • 净资产收益率公式怎么算出来的
  • 库存周转天数计算实例
  • 折扣销售怎么确认
  • 个体工商户网上报税流程
  • 企业所得税利润总额怎么算
  • bios怎么恢复出厂设置会怎么样
  • 小黑马下载
  • debian10.9安装教程
  • 收到投资方投入原材料
  • windows7便签删除了怎么恢复
  • php日期差
  • 付给他人押金的会计分录
  • wgcore.dll是什么文件夹
  • uniapp多端兼容
  • johnny kim宇航员
  • 建筑公司预收账款一般是哪些
  • 同一控制下控股合并在合并日合并报表编报正确的有
  • 预缴土地增值税的税率
  • vue中的use
  • php定义方法
  • 物业公司的会计科目有哪些
  • 申报完成后怎么处理
  • 需要计提坏账准备吗
  • 建筑企业未按规定预缴增值税
  • 水电费用属于会计的什么费用
  • 企业负担的社保费会计分录
  • 个体工商户季度超过9万怎么交税
  • sqlserver触发器写法
  • 兼营和混合销售怎么区分
  • 账务处理程序是指什么
  • 总公司委托分公司开票及收款
  • 参展企业收到展览费用
  • 接受捐赠后怎么发表感言
  • 公司不做账不报税有什么后果?
  • 公益募捐的基金是什么
  • 为什么工程施工图纸不能泄露
  • 两家公司
  • 账簿设计原则的主要内容
  • mysql怎么查询数据表
  • mysql数据库迁移到达梦
  • myeclipse中连接数据库的地方在哪
  • SQL Server2005、2008如何彻底删除卸载并重新安装?
  • 电脑bios找不到硬盘怎么办
  • aesm_service.exe是什么
  • Win7旗舰版系统文件名称
  • win10自带的音乐播放器groove如何设置
  • gsicon.exe是什么进程 作用是什么 gsicon进程查询
  • win8.1死机卡住不动
  • win10 19043.1237
  • centos开机grub
  • edge以ie
  • yum update upgrade
  • mac sip怎么打开
  • node. js教程
  • python简单加密
  • 记录心率
  • jq easyui
  • js中concat的用法
  • 国税局调动
  • 单位税额怎么算出来的
  • 电子税务局怎么添加开票员
  • 买新车的注意事项有哪些比较重要的
  • 河南省2020年12月纳税申报截止日期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设