首页 > 编程语言 > 详细

unity3d 资源加载与释放的内存管理

时间:2018-06-28 16:24:21      阅读:181      评论:0      收藏:0      [点我收藏+]

unity3d 在动态创建实例的过程中有三个步骤

AssetBundle.LoadFromFile 创建的是AssetBundle文件内存镜像 bundle

bundle.LoadAsset 创建的是asset内存镜像 asset

Instantiate(asset) 创建出实例对象 gameobject

 

所以就对应这三个生成物体的生成与释放

gameobject

  Instantiate(asset) 生成 gameobject

  Destroy(gameobject) 销毁 gameobject

asset

  bundle.LoadAsset 创建asset内存镜像

  Reources.UnloadAsset(asset) 释放asset内存镜像

  Resources.UnloadUnusedAssets() 释放没有引用的asset

  (策略,不想释放的asset,保持asset的引用,调用UnloadUnusedAssets来统一释放想释放的asset)

bundle

  AssetBundle.LoadFromFile 创建bundle文件内存镜像

  bundle.Unload(false) 释放bundle文件内存镜像

  (在创建完成所有asset之后,调用bundle.Unload(false))

 

场景切换会销毁所有gameobject,清除asset内存镜像的引用,但是不包括AssetBundle文件自身的内存镜像

 

unity3d 资源加载与释放的内存管理

原文:https://www.cnblogs.com/jane-near/p/9239214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!