Unity生成AB包和加载AB包

英国365bet 📅 2025-10-31 19:43:35 ✍️ admin 👁️ 3056 ❤️ 423
Unity生成AB包和加载AB包

unity生成AB包

生产AB包,编辑器脚本放在Editor文件夹下(切记)

如果你是PC包 BuildTarget.WebGL 后面要改成PC (BuildTarget.StandaloneWindows64)

using UnityEngine;

using UnityEditor;

using System.IO;

public class BuildAssetBundle : MonoBehaviour

{

[MenuItem("Tools/打AB包")]

public static void BuildAB()

{

string dir = Application.streamingAssetsPath; //定义AB包路径:工程目录下的StreamingAssets

if (Directory.Exists(dir) == false)//如果不存在文件夹,那么新建一个

{

Directory.CreateDirectory(dir);

}

BuildPipeline.BuildAssetBundles(dir,

BuildAssetBundleOptions.ChunkBasedCompression, BuildTarget.WebGL);

AssetDatabase.Refresh();

Debug.LogError("打包完成");

}

}

1.先把你需要的对象变成预制体,选中预制体,给预制体添加AssetBundle(如下图)

2.设置完成点击Tools/打AB包 等待即可

完成之后文件夹会出现 如下图文件

3.然后把第一个文件复制到自己的服务器即可

加载AB包

1.两种方式脚本如下

using System.Collections;

using UnityEngine;

using UnityEngine.Networking;

public class Load_AB : MonoBehaviour

{

private void Start()

{

StartCoroutine(LoadWWW());

StartCoroutine(FromWebRequest());

}

private IEnumerator FromWebRequest()

{

string path = @"http://192.168.1.80:8088/unity/model.ab";

UnityWebRequest webRequest = UnityWebRequestAssetBundle.GetAssetBundle(path);

yield return webRequest.SendWebRequest();

AssetBundle assetBundle = DownloadHandlerAssetBundle.GetContent(webRequest);

//object obj = assetBundle.LoadAsset("Image");

//Instantiate((GameObject)obj, FindObjectOfType().transform);

object[] objects = assetBundle.LoadAllAssets();

foreach (var item in objects)

{

Instantiate((GameObject)item, FindObjectOfType().transform);

}

yield return null;

}

private WWW Loadab;

private IEnumerator LoadWWW()

{

Loadab = new WWW("http://192.168.1.80:8088/unity/model.ab"); // 路径可以根据自己需求来修改

yield return Loadab;

if (Loadab.error != null)

{

Debug.Log(Loadab.error);

}

else

{

object[] objects = Loadab.assetBundle.LoadAllAssets();

foreach (var item in objects)

{

Instantiate((GameObject)item, FindObjectOfType().transform);

}

}

}

}

如果没有服务器可以配置一个本地服务器 (iis管理器)

本地搜索iis打开如下图

右键网站

点击添加网站

网站名称:随便起

物理路径:找一个自己的文件夹方便找

IP地址:一般都是本机Ip

端口:设置其他即可(80没有占用的情况下可以不用改)

双击MIME类型(右键添加新类型)

因为是AB包所以添加后缀 .ab 类型是:application/octet-stream

这个添加完后找到你刚刚设置的文件夹地址里面有一个web.config文件,编辑此文件

编辑好的图如下图

需要添加的类型代码如下 上面的.ab类型也可以在这里加

2.如果你发布的是WebGl加载AB包模型出现丢失材质的情况

需要在编辑器里加入你模型需要的材质shader如下图

默认只有6个其他的都是添加的

重新打包AB包,80%用户已解决

本次就到这里了,谢谢大家观看

相关推荐

唯品会有客服的么,怎么找?
Microsoft 365 登录

唯品会有客服的么,怎么找?

📅 10-28 👁️ 3630
橡胶制品为什么会发粘以及怎么处理
Microsoft 365 登录

橡胶制品为什么会发粘以及怎么处理

📅 07-04 👁️ 1664
《狙击手:幽灵战士3》存档文件夹位置介绍
Microsoft 365 登录

《狙击手:幽灵战士3》存档文件夹位置介绍

📅 09-17 👁️ 4076