今天在群里问朋友有没有 同步加载 Assetbundle 的方法,同事给我指点 Unity3d 不知道在哪一个版本新增了一个 AssetBundle.CreateFromFile 的接口,这个接口是同步读取Assetbundle的。于是到帮助文档查询相关资料。
http://docs.unity3d.com/ScriptReference/AssetBundle.CreateFromFile.html
文章转自http://blog.csdn.net/huutu 星环游戏 http://www.thisisgame.com.cn
AssetBundle.CreateFromFilepublic static AssetBundle CreateFromFile(string path);Parameterspath Path of the file on diskSee Also: WWW.assetBundle, WWW.LoadFromCacheOrDownload.DescriptionLoads an asset bundle from a disk.Only uncompressed asset bundles are supported by this function. This is the fastest way to load an asset bundle.
文章转自http://blog.csdn.net/huutu 星环游戏 http://www.thisisgame.com.cn
与之前使用WWW方式相比,使用 CreateFromFile读取 Assetbundle 方式有以下不同:
1、WWW是异步的, CreateFromFile 是同步的。
2、CreateFromFile接口读取的必须是没有压缩的Assetbundle文件。
来对比两种方式的打包与读取
文章转自http://blog.csdn.net/huutu 星环游戏 http://www.thisisgame.com.cn
打包Assetbundle 压缩 与 不压缩
如果使用 CreateFromFile 这个API 来读取 Assetbundle ,那么打包 Assetbundle 的时候要注意打包成 非压缩的 ,也就是要加上 这个 设置。
BuildAssetBundleOptions.UncompressedAssetBundle
代码如下:
using UnityEngine;using System.Collections;using UnityEditor;using System.IO;public class NewBehaviourScript : Editor { [MenuItem ("cp/build Girl NoLZMA")] static void BuildGirlNoLZMA() { string targetdir = Application.dataPath + "/bundleNoLZMA"; uint crc = 0;