Unity3d中使用assetbundle_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Unity3d中使用assetbundle

Unity3d中使用assetbundle

 2015/1/22 21:25:04  疯人愿  程序员俱乐部  我要评论(0)
  • 摘要:1、导出assetbundle:①单个资源导出成assetbundle;②多个资源导出成一个assetbundle;2、读取assetbundle:①加载到内存;②解压为具体资源。1、导出assetbundle:①单个资源导出成assetbundle;BuildPipeline.BuildAssetBundle(Objectobj,null,stringpath,BuildAssetBundleOptions.CollectDependencies,BuildTarget.Android)
  • 标签:使用

1、导出assetbundle:

  ①单个资源导出成assetbundle;

  ②多个资源导出成一个assetbundle;

2、读取assetbundle:

  ①加载到内存

  ②解压为具体资源。

 

1、导出assetbundle:

  

①单个资源导出成assetbundle;

BuildPipeline.BuildAssetBundle(Object obj, null, string path, BuildAssetBundleOptions.CollectDependencies, BuildTarget.Android);

//obj 单个资源,转成Object类型
//path 路径(例如:"Assets/streamingassets/obj.unity3d"),资源包的后缀名可以任意写或不写
//BuildAssetBundleOptions.CollectDependencies 包含资源的依赖关系,比如要导出的资源是一个prefab,就会把其引用的mesh、贴图、材质球、动画统统导出到资源包里面去
//BuildTarget.Android 导出的资源包是给什么平台用的,Android、PC、或者别的什么


 

  ②多个资源导出成一个assetbundle;

BuildPipeline.BuildAssetBundle(null, Object[] objs, string path, BuildAssetBundleOptions.CollectDependencies, BuildTarget.Android);

//objs 包含多个资源的数组,Object[]类型
//path 路径(例如:"Assets/streamingassets/obj.unity3d"),资源包的后缀名可以任意写或不写
//BuildAssetBundleOptions.CollectDependencies 包含资源的依赖关系,比如要导出的资源是一个prefab,就会把其引用的mesh、贴图、材质球、动画统统导出到资源包里面去
//BuildTarget.Android 导出的资源包是给什么平台用的,Android、PC、或者别的什么

 

 

2、读取assetbundle:

  ①加载到内存;

  ②解压为具体资源。

IEnumerator Load(string path, string name)
{
    /*下面是加载到内存的过程*/
    WWW bundle = new WWW(path);  //例如:"Assets/streamingassets/obj.unity3d"
    yield return bundle;

    /*下面是解压为具体资源的过程*/
    Object obj = bundle.assetBundle.Load(name);  //name是具体资源的名字      
}

 

 

注:IEnumerator是协程,可以想象成Unity3d中的多线程,就是同时可以干很多事情的意思,虽然原理上与多线程不同,但使用起来的效果几乎没有区别。如果要处理的是很多资源的assetbundle的话,不管是导成一个了,还是多个的,要结合策划的具体需求合理规划协程的组织。

上一篇: 有人向我反馈了一个bug 下一篇: 没有下一篇了!
发表评论
用户名: 匿名