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
object[] objects = assetBundle.LoadAllAssets();
foreach (var item in objects)
{
Instantiate((GameObject)item, FindObjectOfType
}
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
}
}
}
}
如果没有服务器可以配置一个本地服务器 (iis管理器)
本地搜索iis打开如下图
右键网站
点击添加网站
网站名称:随便起
物理路径:找一个自己的文件夹方便找
IP地址:一般都是本机Ip
端口:设置其他即可(80没有占用的情况下可以不用改)
双击MIME类型(右键添加新类型)
因为是AB包所以添加后缀 .ab 类型是:application/octet-stream
这个添加完后找到你刚刚设置的文件夹地址里面有一个web.config文件,编辑此文件
编辑好的图如下图
需要添加的类型代码如下 上面的.ab类型也可以在这里加
2.如果你发布的是WebGl加载AB包模型出现丢失材质的情况
需要在编辑器里加入你模型需要的材质shader如下图
默认只有6个其他的都是添加的
重新打包AB包,80%用户已解决
本次就到这里了,谢谢大家观看