位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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)

  • 小微企业城建税优惠政策2023
  • 期末账项调整的基础是
  • 盈余公积发放现金股利分录怎么写
  • 股东不任职
  • 控股收益
  • 转出多交增值税最后怎么做平
  • 冲减暂估成本的会计分录
  • 佣金可以入账吗
  • 法定盈余公积金的提取比例一般按照()
  • 个税专项附加扣除是每个月扣还是按年计算
  • 写字楼注册公司对面积有要求吗
  • 退货款现金流量表填经营活动的什么科目
  • 解除合同补偿金需要缴纳个税吗
  • 农林牧渔业税务优惠
  • 无法读取金税盘时间版本怎么解决
  • 开票资料填写
  • 办公低值易耗品的账务处理
  • 销售不动产扣除项目有哪些
  • 房屋抵债如何确定契税计税依据?
  • 处理固定资产开什么发票
  • 进口应税消费品的组成计税价格公式
  • 法院的诉讼费和保全费怎么算
  • 发票额度1万申请10万的条件
  • 网上申领发票怎么清卡
  • 委托贷款合同效力
  • 库存现金长短款怎么算
  • 公司补缴印花税的后果
  • xmp是什么格式的文件是一种预设吗
  • 适用于初学者的美得理电子琴
  • 重装系统前需要注意什么
  • linux中怎么安装GUI
  • php __destruct
  • wordpress介绍
  • vue跳转到外部链接且带上参数
  • 沃特金斯格伦州立公园
  • 在海洋里游泳
  • 员工购买住房公积金申请
  • 项目资本金现金流量表现金流入
  • 三万个字多久写完
  • 机器学习中的数据预处理方法与步骤
  • php 面向对象
  • 成功解决用英语怎么说
  • django pycharm
  • 蚁群算法是什么
  • 2023版最新最全React面试题
  • 防抖节流实现原理
  • 留抵税额可以保留几年
  • 股东的投资款能转为借款
  • 专用发票跨月冲红流程
  • sql server 2008 安装 1935
  • 收到季度房租需要分摊吗
  • 城市生活垃圾处理费征收管理办法
  • 贷款服务的利息怎么算
  • 航天信息开票软件客服
  • 无票收入怎么写分录
  • 费用先付款后收到发票的会计分录
  • 旅行社的代订机票产品能报销吗
  • 商业企业会计分录大全
  • sql报错22018
  • mysqli修改表中数据
  • win8桌面图标不显示
  • 未能打开这台计算机上的组策略对象
  • ie10怎么设置ie8兼容模式
  • Win10 Mobile 14342.1004快速预览版更新 提升电池续航
  • win7系统如何修复引导
  • 安卓获取设备信息
  • label控件的作用
  • cocos2dx小游戏
  • jquery滚动到底部加载数据
  • 日拱一卒下一句是什么
  • jquery 动态添加元素
  • python 元类的作用
  • js获取当前月份的天数
  • 微软python视频教程
  • 电子税务局怎么申报
  • 12123罚款滞纳金不能交嘛
  • 投诉10080 48小时都没有回复
  • 税务怎么在外网申报
  • 南通买房首付规定
  • 取得土地使用权后两年未开发
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号