首先打开一个项目导入一个简单的场景
导入怪物资源,
AssetBundle知识点:
1.指定资源的AssetBundle属性标签
(1)找到AssetBundle属性标签
(2)A标签 代表:资源目录(决定打包之后在哪个文件夹里面)
B标签 代表:后缀
(3)设置AB标签
AssetBundle的属性标签 = 资源目录 + 后缀
2.构建AssetBunde包(AB包)
3.上传到服务器
4.加载使用
接下来创建一个Editor包
然后将创建的Scripts脚本放在Editor包里
using UnityEditor;
using UnityEngine;
using UnityEngine.Windows;
public class CreateAssetBundles : MonoBehaviour{
//添加编辑器菜单
[MenuItem("Tools/Build AssetBundles")]
static void BuildAllAssetBundles() {
//打包输出路径,没有根目录,是一个相对路径
string _path = "AssetBundles";
//判断输出路径是否存在 不存在就创建
if(!Directory.Exists(_path))
Directory.CreateDirectory(_path);
BuildPipeline.BuildAssetBundles(_path, BuildAssetBundleOptions.None,
BuildTarget.StandaloneWindows64);
}
//BuildAssetBundOptions.None 使用LZMA算法压缩
//特点:压缩包 但是加载时间会更长
//使用之前需要解压缩 一旦被解压 会使用LZ4算法重新压缩
//在下载时可以使用LZMA算法 一旦下载之后 它会使用LZ4算法保存在本地上
//BuildAssetBundleOptions.UncompressedAssetBundle 不使用算法压缩
//特点:包大 加载快
//BuildAssetBundleOptions.ChunkBasedCompression : 使用LZ4算法压缩 基于Block,资源
//分块,一个块一个小包。特点:压缩率没有LZMA那么高,但是我们可以加载指定
//资源而不用全部解压缩,加载速度媲美不压缩,而且文件比不压缩的小
}
此时工具栏里多了Tools方便我们加载怪物模型
点击子选项 构建AssetBundles
接下来在Scripts包下创建脚本
其中目录文件在
我们就会看见构建的AssetBundles
双击进去后
复制路径
添加模型名称
此时已找到路径资源
接下来利用代码加载本地文件中的怪物模型
using UnityEngine;
public class LoadAssetsFromFile : MonoBehaviour{
void Start(){
AssetBundle ab_Monster = AssetBundle.LoadFromFile("AssetBundles/monster/one.u3dmodel");
GameObject monster01 = ab_Monster.LoadAsset<GameObject>("Monster01");
Instantiate(monster01);
}
}
最后删除掉Unity项目中的所有怪物预制体,目的是从本地文件中加载
创建一个空物体
挂载本地加载模型代码
运行前
运行后,成功从本地文件加载模型
此文章从本地文件加载unity项目模型,下一篇文章,从云数据库加载。