大佬教程收集整理的这篇文章主要介绍了Unity AssetBundle工作流,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一、创建AssetBundle
1、在资源的Inspector视图下有一个AssetBundle的UI,第一个选项表示AssetBundle名称,第二个用于设置AssetBundle Variant,主要用于在不@R_402_11197@资源的使用和动态替换AssetBundle。
title="Unity AssetBundle工作流" alt="Unity AssetBundle工作流" src="https://cn.js-code.com/res/2019/02-11/20/7b2136ffb3321cc00448bc8d97759733.png" >
2、在Unity的Assets文件夹下创建Editor文件夹,创建一个C#脚本,用于创建AssetBundle,代码如下:
[MenuItem(</span><span style="color: #800000">"</span><span style="color: #800000">Custom Editor/Build AssetBunldes</span><span style="color: #800000">"</span><span style="color: #000000">)]
</span><span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span><span style="color: #000000"> CreateAssetBundlesmain()
{
BuildPipeline.buildAssetBundles(</span><span style="color: #800000">"</span><span style="color: #800000">Assets/StreamingAssets</span><span style="color: #800000">"</span><span style="color: #000000">,BuildAssetBundLeoptions.None,BuildTarget.StandaloneWindows64);
}
}
注:这里的MenuItem是用于在Unity编辑器的菜单上添加一个菜单项。输出路径为Assets下的StreamingAssets文件夹(确保存在)。
3、选择菜单栏中的Custom Editor->Build AssetBundles命令,即可在输出路径中看到打包的AssetBundle。
title="Unity AssetBundle工作流" alt="Unity AssetBundle工作流" src="https://cn.js-code.com/res/2019/02-11/20/af4b5b552152941839cd8b58d49093b2.png" >
生成的AssetBundle:
title="Unity AssetBundle工作流" alt="Unity AssetBundle工作流" src="https://cn.js-code.com/res/2019/02-11/20/2d4453315e48bff8dc4c911663fc3711.png" >
这里的test.assetbundle即是要上传到服务器上下载的AssetBundle文件(如果有依赖关系,还要上传test.assetbundle.manifest文件)。
二、下载AssetBundle并加载
</span><span style="color: #0000ff">void</span><span style="color: #000000"> Start () {
StartCoroutIne(</span><span style="color: #800000">"</span><span style="color: #800000">loadAssetBundle</span><span style="color: #800000">"</span><span style="color: #000000">);
}
IEnumerator loadAssetBundle()
{
</span><span style="color: #0000ff">String</span> assetBundlePath = <span style="color: #800000">"</span><span style="color: #800000">file://</span><span style="color: #800000">"</span> + Application.dataPath + <span style="color: #800000">"</span><span style="color: #800000">/StreamingAssets/test.assetbundle</span><span style="color: #800000">"</span><span style="color: #000000">;
Debug.Log(assetBundlePath);
WWW www </span>= WWW.LoadFromCacheOrDownload(assetBundlePath,<span style="color: #800080">0</span><span style="color: #000000">);
</span><span style="color: #0000ff">yield</span> <span style="color: #0000ff">return</span><span style="color: #000000"> www;
</span><span style="color: #0000ff">if</span> (www.error == <span style="color: #0000ff">null</span><span style="color: #000000">)
{
AssetBundle myLoadAssetBundle </span>=<span style="color: #000000"> www.assetBundle;
AssetBundlerequest request </span>= myLoadAssetBundle.LoadAssetAsync(<span style="color: #800000">"</span><span style="color: #800000">park</span><span style="color: #800000">"</span>,<span style="color: #0000ff">typeof</span><span style="color: #000000"> (GameObject));
</span><span style="color: #0000ff">yield</span> <span style="color: #0000ff">return</span><span style="color: #000000"> request;
GameObject obj </span>= request.asset <span style="color: #0000ff">as</span><span style="color: #000000"> GameObject;
Instantiate(obj);
myLoadAssetBundle.Unload(</span><span style="color: #0000ff">false</span><span style="color: #000000">);
} </span><span style="color: #0000ff">else</span><span style="color: #000000">
{
Debug.Log(www.error);
</span><span style="color: #0000ff">yield</span> <span style="color: #0000ff">return</span> <span style="color: #0000ff">null</span><span style="color: #000000">;
}
}
}
以上便是主要步骤。
以上是大佬教程为你收集整理的Unity AssetBundle工作流全部内容,希望文章能够帮你解决Unity AssetBundle工作流所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。