zoukankan      html  css  js  c++  java
  • Assetbundle创建与加载

    Assetbundle创建与加载

      Unity有两种动态加载机制:一种是Resource.Load。一种是AssetBundle。Assetbundle是Unity Pro提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中。供加载、解压使用。  

    创建Assetbundle

    使用方法 BuildPipeline.BuildAssetBundle (Object, assets , pathName , options , targetPlatform) 

    参数1:它只能放一个对象。

    参数2:可以放入一个数组对象。

    参数3:保存路径。

    参数4:BuilderAssetBundleOptions

           CollectDependencies // 包含所有依赖关系。

           CompleteAssets//强制包含整个资源

           DisableWriteTypeTree//在资源包不包含类型信息。

           DeterministicAssetBundle//编译资源包使用一个哈希表储存对象ID在资源包中。

           UncompressedAssetBundle//不压缩Assetbundle,默认会进行压缩

    参数5:平台

           特别注意的是,电脑上和手机上打出来的Assetbundle不能混用,不同平台只能用自己的。

    载入Assetbundle

           使用方法:

           1)WWW bundle = new WWW(path);

           2)WWW bundle = WWW.LoadFromCacheOrDownload(path, fileVer);

    载入成功后就可以通过资源名使用bundle.assetBundle.Load方法获取资源。

           如下图所示

      

      使用Assetbundle.Load会从Assetbundle的内存镜像中读取并创建一个Asset对象,创建的同时会分配相应的内存用于反序列化存储。

    内存释放

      

      最后在使用Assetbundle时候最好的方式是。

      创建时:使用Assetbundle.load加载所需的asset,加载完后立即Assetbundle.Unload(false),释放Assetbundle文件本身的内存镜像,但不销毁加载的Asset对象。这样遍可以释放一部分内存。

      释放时。如果是通过Instantiate的对象,用Destroy进行销毁。在合适的地方使用Resources.UnloadUnusedAssets,释放已经没有引用的Asset。Unity底层会对对象引用进行计数,如果引用为0.执行UnloadUnusedAssets就可以全部释放。

     【使用要点

    1、AssetBundle会使用Lzma压缩。

    2、Resource下的资源发布时会变成resources.assets文件,2G磁盘大小限制。首次完全下载,不可更新。

    3、AssetBundle的本地磁盘缓存可多达4G,除了Web版只能50M。

    4、兼容性。

      

    5、AssetBundle创建方法:

      

    6、BundleOption的区别。

      

    7、AssetBundle.CreateFromMemory()速度慢。

    8、AssetBundle.CreateFromFile只能加载非压缩的AssetBundle。

    9、LoadLevel方法详解:

      

    10、AssetBundle的释放。

      

     

  • 相关阅读:
    Silverlight项目开发准则
    WCF序列化65536大小限制的问题
    自定义的asp.net翻页控件
    解决Process因缓冲区满而导至进程阻塞的办法
    选择适合的Silverlight通信技术
    深入剖析WCF的可靠会话[实例篇](内含美女图片,定力差者慎入)
    25个强大的 jQuery 砌体网页设计作品
    Silverlight 4常用StringFormat格式总结
    C# 发送邮件内容嵌入图片
    如何解决Silverlight跨域访问安全性问题
  • 原文地址:https://www.cnblogs.com/tekkaman/p/4040081.html
Copyright © 2011-2022 走看看