一.简单的打包实现(打包游戏物体)。
1.将需要打包的游戏物体制作成预制体,在预制体的Inspector面板最下方找到AssetBundle选项,在这里设置物体打包后的包名和后缀。名称为None代表不打包。
2.添加打包脚本,脚本不需要继承Monobehavior。在菜单栏上添加打包选项。
using System.IO; using UnityEditor; public class CreateAssetBundles { //使用一个静态方法进行打包,将这个方法添加到菜单栏 [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { //因为打包时不会自动创建路径,所以检验打包路径是否存在,不存在需要先创建打包路径 string dir = "AssetBundles"; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } //打包 BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64); } }
3.打包
4.在刚才设置的打包文件夹下可以查看是否打包成功
二.资源的加载
1.添加空物体,挂载一个用于加载资源的脚本
2.在脚本中加载资源
public class LoadFromFileExample : MonoBehaviour { // Start is called before the first frame update void Start() { //加载资源,加载后的内容保存为AssetBundle对象 AssetBundle assetBundle = AssetBundle.LoadFromFile("AssetBundles/wall.unity3d"); //取出资源,资源的类型时GameObject,名称是Wall GameObject wallPrefab = assetBundle.LoadAsset<GameObject>("Wall"); //实例化取出的游戏物体 Instantiate(wallPrefab); } }
三.更多的打包选择
1.打包目录划分:在unity中的Inspector窗口下确定填写打包后包名时可以通过"/"进行目录划分。不同的资源可以指定相同的包名和后缀,也就是同一个包中可以包含多个资源。
原文:https://www.cnblogs.com/movin2333/p/14359140.html