打包设置
首先代码打包AB很简单,我们把它放在我们项目工程的根目录下
using UnityEditor;
using System.IO;
public class CreateAssetBundles
{
[MenuItem("Tools/BuildAssetBuldels")]
static void BuildAllAssetBundles()
{
//判断有没有这个目录,没有的话就创建一个目录
string dir = "AssesBundles";
if (Directory.Exists(dir) == false)
{
Directory.CreateDirectory(dir);
}
//打包AB包代码
//BuildAssetBundleOptions.None选择哪种压缩方式None的包体相对较小,第一次解压需花费较长时间
//BuildTarget.StandaloneWindows64这个需要根据需求旋转不同的平台
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
}
}
在Unity里面,我们需要讲我们要打包的资源进行一些AssetBundle的设置

默认情况下,这里为null,我们直接点击之后选择“New”,新建一个包的种类
示例:公用资源 share,然后想创建一些子目录可以scene\wall

这个后缀可以随意设置,一般都是ab,unity3d之类的
从包中加载资源
从上面设置的根目录加载
void Start(){
//从根目录里面加载ab包,这里需要加后缀
AssetBundle shareAb = AssetBundle.LoadFromFile("AssesBundles/share.unity3d");
AssetBundle ab = AssetBundle.LoadFromFile("AssesBundles/scene/prefab.unity3d");
//把取到的资源生成到我们的场景,这里不需要后缀
GameObject cube = ab.LoadAsset<GameObject>("Cube");
Instantiate(cube);
}
通过WWW加载
IEnumerator Start(){
while (!Caching.ready)
{
yield return null;
}
//本地绝对路径
WWW www = WWW.LoadFromCacheOrDownload(@"file:///E:\WebProgram\AssesBundles\scene\prefab.unity3d", 1);
//服务器
//WWW www = WWW.LoadFromCacheOrDownload(@"http://192.168.0.191/AssesBundles/scene/prefab.unity3d", 1);
yield return www;
if (!string.IsNullOrEmpty(www.error))
{
Debug.Log(www.error);
yield break;
}
var ab = www.assetBundle;
}
使用官方推荐的加载方式
IEnumerator Start(){
//通过UnityEngine.Networking.UnityWebRequest
//string uri = @"file:///E:\WebProgram\AssesBundles\scene\prefab.unity3d ";
string uri = @"http://192.168.0.191/AssesBundles/scene/prefab.unity3d";
var request = UnityWebRequest.GetAssetBundle(uri);
yield return request.SendWebRequest();
//var ab = DownloadHandlerAssetBundle.GetContent(request);
var ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
//把加载到的prefab资源都生成
var objs = ab.LoadAllAssets();
foreach (var item in objs)
{
Instantiate(item);
}
}
本文详细介绍了在Unity中使用AssetBundles进行资源打包的方法,包括代码实现、目录创建、不同平台的选择,以及如何从根目录或通过WWW加载资源。同时,提供了官方推荐的加载方式,适用于游戏开发和资源管理。
225

被折叠的 条评论
为什么被折叠?



