Unity加载prefab时调用脚本函数顺序和内存释放问题

本文探讨了在Unity中加载Prefab的两种方法及其对内存的影响。详细介绍了使用Resources.Load和NGUITools.AddChild接口加载Prefab的过程,并分析了在不同激活状态下对象的生命周期。特别关注了当从Active状态切换到Disactive状态时,对象内存数据未能释放的问题。

加载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查看发现显示该对象再销毁后无法释放对象内存数据,如引用的贴图等,哪位大神知道原因请点拨一二或一起讨论一下。

 

转载于:https://www.cnblogs.com/elvisxu/p/4971845.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值