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
本文详细介绍了在Unity中如何使用C#脚本创建AssetBundles,并提供了具体的代码示例。同时,还展示了如何在游戏运行时加载AssetBundles中的资源,包括预制体的实例化过程。

3万+

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



