加载prefab时使用两个接口:
GameObject objPrefab = Resources.Load(pathName) as GameObject;
GameObject frame = NGUITools.AddChild(parent, objPrefab); //parent为对象需要挂载到的父节点对象
对象在被挂载到父节点上时,会调用脚本,分为两种情况:
1.prefab初始保存为Active状态
立刻按顺序触发 Awake, OnEnable 函数, 下一帧触发Start函数
2.prefab初始保存为Disactive状态
调用SetActive(true)激活对象后立刻按顺序触发 Awake, OnEnable 函数, 下一帧触发Start函数
测试在加载prefab的两步之间将初始保存为Active状态的prefab使用NGUITools.SetActive(objPrefab, false)设置为Disactive后,打开profiler查看发现显示该对象再销毁后无法释放对象内存数据,如引用的贴图等,哪位大神知道原因请点拨一二或一起讨论一下。
本文探讨了在Unity中加载Prefab的两种方法及其对内存的影响。详细介绍了使用Resources.Load和NGUITools.AddChild接口加载Prefab的过程,并分析了在不同激活状态下对象的生命周期。特别关注了当从Active状态切换到Disactive状态时,对象内存数据未能释放的问题。
1535

被折叠的 条评论
为什么被折叠?



