hand
_1_7_148
4
返回栏目
1k
0.2k
0.5k
0.1k
0k
0.2k
0k
0.7k
0k
0k
0.4k
0.1k
4k
0.2k
0.1k
2k
0.2k
0.2k
0k
0k
0.5k
0k
0.9k
0.1k
1k
0.9k
2k
1k
2k
0.9k
1k
0k
1k
0k
1k
1k
1k
1k
0k
1k
1k
1k
0k
3k
1k
0k
0.3k
1k
0.3k
0.9k
0k
8k
9k
6k
2k
1k
2k
1k
1k
2k
0.6k
1k
0.6k
1k
0.5k
0.2k
2k
2k
2k
1k
2k
0k
0.8k
0.8k
1k
0k
0k
0k
0k
0k
0k
0k
0k
0.3k
0.4k
0.8k
0.3k
5k
1k
3k
7k
6k
3k
3k
1k
0.2k
2k
3k
2k
0.4k
0.5k
3k
2k
7k
3k
4k
2k
1k
6k
6k
1k
1k
0.9k
0.2k
0.3k
0.9k
1k
0k
0.8k
2k
0k
0.4k
0.1k
1k
0.9k
0.2k
1k
1k
0.5k
0k
0k
0.4k
4k
0.4k
2k
3k
1k
1k
1k
3k
5k
0k
1k
2k
0.5k
0k
1k
0k
1k
0.5k
0.8k
返回Unity - 游戏引擎栏目
作者:
贺及楼
成为作者
更新日期:2023-09-17 11:01:35
作用:可以跨越ios、Android 用于传输新数据的包
资源(Prefet、Object)被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个)
某些二进制资源(图片、声音)被单独保存,方便快速加载
!!一个Materials材质多个物体使用,把材质打一次包,可以减少容量!!
逻辑实体:(所有UI一个包、一个/所有角色一个包、场景模型贴图一个包)
类型:(声音一个包、sharder一个包、模型一个包、材质一个包)
使用分组:(关卡一个包)
Materials材质在预览图下方有AssetBundle属性
2个命名空格(例如:大空格.小空格)
大空格(可以直接写,也可以加个斜杠代表文件夹里的):
wall
scene/wall
小空格(版本)
v1、v2、v3、v4、v5
Assets文件夹创建Editor文件夹 - CreateAssetBundles.cs
using UnityEditor;
using System.IO;
public class CreateAssetBundles
{
[MenuItem("Assets/Build AssestBundles")]//菜单栏选项调用
static void BuildALLAssetBundles()
{
string dir = "AssetBundles";//路径
if (Directory.Exists(dir) == false)//检测路径是否存在
{
Directory.CreateDirectory(dir);
}
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.Android);//平台区分的
}
}
压缩方式:
BuildAssetBundleOptions.None
LZMA:压缩率高,加载时间长
BuildAssetBundleOptions.UncompressedAssetBundle
不压缩、包大、加载快
BuildAssetBundleOptions.ChunkBasedCompression
LZ4:指定资源解压
菜单栏Assets - Build AssestBundles
Assets文件夹 - 右键 - Show in Explorer - AssetBundles文件夹
.manifest文件可以打开查看资源目录、一一对应
AssetBundles
AssetBundles.manifest
.manifest:
CRC:校验是否完整
Assets:资源路径
Dependencies:依赖本资源的资源
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadFromFileExample : MonoBehaviour
{
void start()
{
AssetBundle ab = AssetBundle.LoadFromFile("AssetBundles/scene/wall");
GameObject wallPrefab = ab.LoadAsset<GameObject>("");
Instantiate(wallPrefab);
//object[] objs = ab.LoadAllAssets();
//foreach (object o in objs)
//{
// Instantiate(o);
//}
}
}
一个是加载一个
一个是循环加载全部
Unity - 游戏引擎
整章节共151节
快分享给你的小伙伴吧 ~