UNITY2019.3之如何生成和加载ASSETBUNDLE包
https://www.freesion.com/article/638669176/
生成ASSETBUNDLE
新建一个Cube和Capsule,命名如图
然后生成预制体,新建AssetBundle
新建一个Editor文件夹(这个是必须的),然后在目录下创建C#脚本:
-
using UnityEditor;
-
using System.IO;
-
public class CreateAssetbundles:Editor
-
{
-
[MenuItem("AssetsBundle/Build AssetBundles")]
-
static void BuildAllAssetBundles()//进行打包
-
{
-
string dir = "AssetBundles";
-
//判断该目录是否存在
-
if (Directory.Exists(dir) == false)
-
{
-
Directory.CreateDirectory(dir);//在工程下创建AssetBundles目录
-
}
-
//参数一为打包到哪个路径,参数二压缩选项 参数三 平台的目标
-
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
-
}
-
}
保存之后编辑器菜单栏就回出现对应按钮如下图:
点击之后就在工程目录对应文件下生成AssetBundle文件:
加载ASSETBUNDLE
在Hierarchy面板新建一个空物体,创建一个加载AssetBundle的脚本,脚本内容如下:
-
using UnityEngine;
-
public class LoadFromFileExample : MonoBehaviour
-
{
-
private void Start()
-
{
-
//通过文件路径加载对应的包
-
AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/scene/wall.unity3d");
-
GameObject wallPrefab = ab.LoadAsset<GameObject>("CubeWall");
-
//实例化预制体
-
Instantiate(wallPrefab);
-
//加载所有包,然后遍历实例出来
-
//Object[] objs = ab.LoadAllAssets();
-
//foreach (var item in objs)
-
//{
-
// Instantiate(item);
-
//}
-
}
-
}
版权声明:本文为a1191835397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a1191835397/article/details/96989037