NGUI制作UI界面打开太慢解决方法

NGUI制作UI界面打开太慢解决方法

ID:39975864

大小:92.00 KB

页数:10页

时间:2019-07-16

NGUI制作UI界面打开太慢解决方法_第1页
NGUI制作UI界面打开太慢解决方法_第2页
NGUI制作UI界面打开太慢解决方法_第3页
NGUI制作UI界面打开太慢解决方法_第4页
NGUI制作UI界面打开太慢解决方法_第5页
资源描述:

《NGUI制作UI界面打开太慢解决方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、NGUI制作UI,界面打开太慢解决办法Uniyt3D利用NGUI打开界面太慢了,起初一直以为是unity的问题,最近经过我的全面测试我发现这和unity没有关系。一般一个比较复杂的界面大概需要150个GameObject 或者UISprite。我用NGUI直接载入发现竟然需要250多毫秒,仅仅只是两张小图。同样的GameObject我用unity2d的Sprite载入只需要70多毫米,可见Unity2d的效率要比NGUI高多少。我可能说的不完全对,因为U3D是闭源的,我只能猜测。再普及一下基础知识:GameObjectgo=GameObject.Instantiate(Resources.

2、Load(“prefabName”))asGameObject;go.AddComponent();我想上面这一行代码,大家应该再也熟悉不过了。实例化一个Prefab,然后给它身上帮一条脚本。如下图所示,我用的是红米作为测试机器。实例化对象我们可以拆成4部分。我用NGUI加载了150个UISpirte=41+4+30+194=269毫秒,一般打开界面超过500毫秒的话用户就会明显感觉卡顿了。而我这个仅仅是一张图而已,事实证明NGUI加载太慢了,到底为什么这么慢?1.Resources.LoadResources.Load是一个”同步”耗时操作,Unity内部维护了资源的内存池,

3、但是调用Load的时候Unity会自动的把Prefab上所引用的资源在加入内存池,它不会重复加载资源。也就是说当你加载相同的UIAtlas的时候,只会第一次比较卡。你可以试试一些线上的unity游戏,一般第一次打开某界面的时候要比以后打开此界面时间长一些。2.GameObject.Instantiate很多人认为加载慢的原因罪魁祸首是Instantiate()。其实我告诉你它的时间反而是最快的,上面的截图我相信就是最好的证明。第一次Instantiate要比以后执行Instantiate要慢一些,可能Unity在做一些特殊处理吧。3.第一次添加脚本添加脚本一般会有两种形式,第一种是通过Ad

4、dComponent