ngui find的物体能释放内存吗?
在学习 NGUI 时,我们可能会遇到这样一个问题:通过 Find 方法找到的物体能否释放内存?下面我们就来探讨这个问题的答案。
当脚本程序使用 NGUI 的组件时,无论是将物体直接拖到脚本上,还是通过 Find 方法获取物体,只要引用了 NGUI 的组件,这些物体就会被加载到内存中。并且,即使切换场景,这些内存也不会被释放,调用 Resources.UnloadUnusedAssets() 方法同样无法释放。
这是因为在场景切换过程中,这些被引用的 NGUI 组件由于存在脚本引用,并不被视为“未使用的资源”,所以 Resources.UnloadUnusedAssets() 方法对其无效。
要释放这些物体所占用的内存,只有在程序结束时删除对这些物体的引用。当删除引用后,这些不再被引用的物体就会被垃圾回收机制识别为可回收的对象,从而释放其所占用的内存。
综上所述,通过 Find 方法找到的引用了 NGUI 组件的物体,只有删除引用才能释放内存。