unity移动端内存优化——NGUI
2014-05-21 21:26
363 查看
做3d移动端内存一直是人们头疼的问题,加载的资源释放了,还有其他的需要释放,比如ngui释放,其实主要是NGUI的Texture和Sprite释放,如果你脚本程序没用到NGUI组建的引用的话,切换场景后第一时间调用
Resources.UnloadUnusedAssets ();
就会释放掉。
但是如果你脚本程序用到NGUI的组建的时候,比如直接拖到脚本上的物体,或者Find的物体,等,只要引用NGUI的组建,它就会加到内存中,切换场景也不会释放,Resources.UnloadUnusedAssets ();也不会释放,你要结束的时候删除这些引用,就会释放掉了
我引用ios的思想去释放的,写了个dealloc方法
在你的脚本之间交互类中写
void dealloc(){
先调用其他脚本的dealloc
再释放本脚本中的
比如我把这些引用加到一个数组里
for (int i = 0; i < UISpritsInScene.Count; i++) {
DestroyImmediate(UISpritsInScene[i]);
UISpritsInScene[i]=null;
}
Resources.UnloadUnusedAssets ();
System.GC.Collect ();
}
就可以释放掉,对移动端大有好处,我从之前的130MB内存,优化到现在的50MB左右,很是稳定
Resources.UnloadUnusedAssets ();
就会释放掉。
但是如果你脚本程序用到NGUI的组建的时候,比如直接拖到脚本上的物体,或者Find的物体,等,只要引用NGUI的组建,它就会加到内存中,切换场景也不会释放,Resources.UnloadUnusedAssets ();也不会释放,你要结束的时候删除这些引用,就会释放掉了
我引用ios的思想去释放的,写了个dealloc方法
在你的脚本之间交互类中写
void dealloc(){
先调用其他脚本的dealloc
再释放本脚本中的
比如我把这些引用加到一个数组里
for (int i = 0; i < UISpritsInScene.Count; i++) {
DestroyImmediate(UISpritsInScene[i]);
UISpritsInScene[i]=null;
}
Resources.UnloadUnusedAssets ();
System.GC.Collect ();
}
就可以释放掉,对移动端大有好处,我从之前的130MB内存,优化到现在的50MB左右,很是稳定
相关文章推荐
- unity移动端内存优化——NGUI
- unity移动端内存优化——NGUI
- unity移动端内存优化——NGUI
- Unity3D移动端内存优化(NGUI方面)
- Unity3D移动端内存优化(NGUI方面)
- Unity3D移动端内存优化(NGUI方面)
- 【Unity插件】NGUI核心组件之UICamera
- 【Unity的NGUI使用经验】使用NGUI的悬浮改变按钮大小
- 【Unity插件】NGUI核心组件之UIAnchor
- unity手游<少侠历险记>(3)NGUI:HUD使用
- unity+ngui 输入框显示系统中文字体的方法
- Unity 3D物体的点击事件响应以及NGUI坐标和世界坐标的互相转换
- 关于Unity中的NGUI字体
- Unity插件之NGUI学习(5)—— 创建Label图文混排及文字点击
- unity遮罩_3(NGUI遮罩 UIPanel功能)
- Unity 利用NGUI2.6.3做技能冷却的CD效果
- < Unity 3D专栏 >NGUI插件基础教程(二) - Sprite,SlicedSprite,Tiled Sprite,FilledSprite的区别
- 【Unity插件】NGUI核心组件之UIAnchor
- 关于Unity中NGUI的背包实现之Scrollview(基于Camera)
- Unity5.3.6升级到Unity5.4.4 NGUI出现Ignoring menu item NGUI because it is in no submenu!问题解决方案