输出ab包
他会把你创建的ab包都打包
也就是在这里的创建的
string assetBundleDirectory = Path.Combine(Application.streamingAssetsPath, "OutAssetBundles");
if (!Directory.Exists(assetBundleDirectory))
{
Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory,BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows);
加载ab包里的文本文件
文本类型是 UnityEngine.TextAsset
c# 输出类型是 ab.LoadAsset( xxx ).GetType()
string str = Path.Combine(Application.streamingAssetsPath, "OutAssetBundles", "myab2");
var ab = AssetBundle.LoadFromFile(str);
if (ab == null)
{
Debug.Log("Failed to load AssetBundle!");
return;
}
UnityEngine.TextAsset a = ab.LoadAsset<UnityEngine.TextAsset>("Main.mjs");
Debug.Log(a.text);
官方的Asset Bundle Browser工具有一个bug
如果你的ab包删掉了 并且Browser工具里还引用着 就会报错
需要重启ide
设置ab包 可以直接设置在文件夹里
如果你直接输出ab包里的 GetAllAssetNames 名字
那么会输出路径 我看到的名字也会小写
不过用你自己的名字也是可以获得的
UnityEngine.TextAsset 也可以放在属性里
可以把文本文件拖进去
puerts引擎会加载这些文本
所以自定义loader也必须加进来
热更新的话 可以把mjs文件放到ab包里
debugpath = "";//这个一般输出完整路径
filepath = Path.GetFileName(filepath);
return Main.ab.LoadAsset<UnityEngine.TextAsset>(filepath).text;
就可以运行了!