美文网首页
AssetBundle打包学习(三)

AssetBundle打包学习(三)

作者: carber | 来源:发表于2017-01-01 15:12 被阅读487次

    本期主要整理一些在AssetBundle打包中碰到的一些细节上的问题。
    可以发现AssetBundle和一些Unity提供的配置选项不兼容导致碰到一些奇怪的问题。

    Mesh配置

    在FBX的Inspector界面有很多可配置项

    Mesh Inspector

    发现 Read/Write Enabled的勾取消掉的时候,如果发生Mesh的访问操作,会直接导致Crash。一般特效带Mesh的会发生这种情况。
    Optimize Mesh会导致多余的Mesh被干掉,造成表现出错。
    上面提到的这两点,如果资源是在Resources目录下被打包则不会出错。

    IOS相关

    Managed code stripping & Engine code stripping,Engine code stripping 默认开启,当把所有的资源都打成Asset Bundle以后Unity会认为这是一个空包,然后大部分Class都被strip,当加载AssetBundle访问的时候直接Crash。

    Shader相关

    shader stripping 默认的Lightmap modes & Fog modes都是Automatic。这样发现最后打完Asset Bundle发现表现上烘焙的光照表现不正确,雾效也丢失了。需要配置为Manual然后根据实际情况勾选相应的Shader,比如Baked Non-Directional。

    加载相关

    当发起一个AssetBundle的LoadAsync异步请求的时候,调用Resources.UnloadUnusedAssets会导致这个AssetBundle加载的资源被释放掉,5.3.6版本存在 5.3.7已经修复 5.3.7 What's News里面有提到
    AssetBundles: Fixed an issue where calling Resources.UnloadUnusedAssets while loading an AssetBundle with AssetBundleRequest.LoadAssetAsync caused an error &and stopped the asset from being loaded properly (803481, 807275)

    总结

    AssetBundle的使用需要主要注意很多细节,总体来看和优化有关,这样类似的问题定位上会简单很多。

    相关文章

      网友评论

          本文标题:AssetBundle打包学习(三)

          本文链接:https://www.haomeiwen.com/subject/rlkivttx.html