位置: 编程技术 - 正文
推荐整理分享unity3d移动平台性能优化15:UIGrid优化(unity 移动应用开发),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d物体移动代码,unity3d物体移动代码,unity mobile3d,unity 移动应用开发,unity移动ui,unity 移动应用开发,unity 移动端,unity 移动端,内容如对您有帮助,希望把文章链接给更多的朋友!
NGUI中有一个控件,UIGrid,例如背包就会用这个实现。
当物品很多的时候,UIGrid打开就会很卡,网上也有人提出了优化的方法,但我认为全部重写有点小题大做,只要找到卡的原因就好了。
经过分析,有两个原因:
1.资源没有复用,这个其实非常简单,只要你自己弄一个对象池,然后不断复用grid就可以了。
2.只能一个个添加gird,没有批量添加方法,这个也很简单,自己写一个批量添加:
public void AddChildren (List<Transform> trans, Vector3 scale) { BetterList<Transform> list = GetChildList(); for(int i = 0; i < trans.Count; i) { trans[i].name = i.ToString(); list.Add(trans[i]); } ResetPosition(list, scale); }
当你解决以上两个问题之后,你会发现性能大幅提升,但随之会有一个问题,这个问题倒不是UIGrid特有的,而是NGUI的老毛病。
当你在同一帧修改控件的父亲时,控制的UIPanel会变成第一个父亲的panel.这其实并不是我们想要的。因为会引起绘制的不正确。
例如gird里面,明明clip的却不显示,反而在clip外面的显示。整个显示都错乱了。你只要注意复用gird的时候,不要将物体移到其他panel下面。
否则你只能自己手动修复panel了。
这样之后,从1s左右的时间缩短到了ms左右,非常不错。
UGUI 实现Button长按效果(RepeatButton) Tag:添加了一个延迟,在按钮按下状态一段时间后再开始repeateusingUnityEngine;usingUnityEngine.Events;usingUnityEngine.EventSystems;usingSystem.Collections;publicclassRepeatPressE
Failed to import package with error: Couldnt decompress package 解压unitypackage的时候出错,原因是路径中包含中文字符,更改成英文路径即可。参考Errorwhileimportingpackage:Couldn'
A Type-Safe Event System for Unity3D 转载自:
标签: unity 移动应用开发
本文链接地址:https://www.jiuchutong.com/biancheng/369338.html 转载请保留说明!友情链接: 武汉网站建设