您的位置:首页 > 移动开发 > Unity3D

unity5 assetbundle 发布资源平台的大坑。程序发布成exe后执行与编译器内不同的问题解决。

2016-10-13 16:30 1061 查看
这段时间把动态加载页做的差不多了,于是想要再发一个版本出来。在编译器里面完美运行后,点击发布



注意看 选的是64位的噢。
发布出来 运行后。发现 我去 我要动态加载的图片都没有!!!这特可怎么办。
发布出来运行 和 编译器里面运行不该一样的么?
最后找到的原因!
BuildPipeline.BuildAssetBundles(m_outPath, BuildAssetBundleOptions.None, (BuildTarget)m_BuildTarget);

打包资源这个函数最后一个参数就是平台


GamePlatform _Platform = GamePlatform.StandaloneWindows64;
#if UNITY_EDITOR
_Platform = GamePlatform.StandaloneWindows64;
#elif UNITY_IPHONE
      _Platform = GamePlatform.iOS;
#elif UNITY_ANDROID
     _Platform = GamePlatform.Android;
#elif UNITY_STANDALONE_WIN
      _Platform = GamePlatform.StandaloneWindows;
#endif

好,问题来了。
我尽管选择的是64位发布,但事实上,运行时他还是认为以32位的环境。
!!

!!所以你需要再准备一套32位的标准资源。这样他发布出来才会执行!!

!!

如果你是64位编辑器 那么选择64位平台  32位选择标准平台。
平台不同 是不能加载的。虽然64位平台可以兼容32位的。但是如果你发布的是32位他默认也是32位。
这个一定要设置清楚,要不可能会被坑苦。

再告诉你们一些 程序发布出来后的测试技巧。
1.发布设置中勾选后,你代码中的debug.logerror 会弹出来。但是debug.log并不会弹出来。
2.想要更清楚的了解你的代码运行情况,你可以在生成的文件内找到
这个文件。里面有你详细的debug 信息。根据这个文件可以很快速的找到,问题的所在。
3.在下载ab(asset bundle)包时,大家很可能用的是WWW.LoadFromCacheOrDownload(Path, Version);
这个方法在你下载过一次后 如果版本号没有变,即使资源内容变了,他也不会再重新下载,因为在正式发布之前肯定需要很多的测试。总不能总是调整版本号。
所以你需要 //清除缓存   Caching.CleanCache();
这个方法。贼好用 相信我。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐