1、创建脚本CreatAssetBuildle.cs将其放入到Editor文件夹下
using UnityEngine;
using System.Collections;
using UnityEditor;
public class CreatAssetBuildle
{
/// <summary>
/// 打包所有的资源
/// </summary>
[MenuItem("MyCreat/BuildAssetBundle")]
static void BuildAllAssetsBundles()
{
//在Assets下创建文件夹AssetBundles
BuildPipeline.BuildAssetBundles("Assets/AssetBundles",BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows);
}
/// <summary>
/// 获取所有的资源名字
/// </summary>
[MenuItem("MyCreat/GetAssetBundleName")]
static void GetAllAssetBundlesName()
{
var assetData = AssetDatabase.GetAllAssetBundleNames();
foreach(var m in assetData)
{
Debug.Log("asset bundle name: " + m);
}
}
}
2、制作两个prefab,分别为Player和Player1。注意Player1上挂有脚本TestDo
3、设置Prefab的assetBundle名字。为Playe.assetbundle格式
4、创建AssetBundle文件夹
5、点击菜单栏中的MyCreat--》BuildAssetBundle,开始常见assetBundle文件
6、在AssetBundle文件夹下,可以看到有AssetBundles.manifest、player.assetbundle.manifest、player1.assetbundle.manifest文件
打开AssetBundles.manifest可以看到如下信息:
ManifestFileVersion: 0
CRC: 2372139793
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: player.assetbundle
Dependencies: {}
Info_1:
Name: player1.assetbundle
Dependencies:
Dependency_0: player.assetbundle
注意;Info_0和Info_1指明打包的资源名字和依赖信息。在这个文件中可以看到所有的打包的 资源。CRC: 399149378------校验码
打开player1.assetbundle.manifes可以看到如下信息
ManifestFileVersion: 0
CRC: 399149378
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 7effddefe7b53ec9566419f83af0a288
TypeTreeHash:
serializedVersion: 2
Hash: 3cfd1b982d3d10d109b44ccf60f9ab2a
HashAppended: 0
ClassTypes:
- Class: 1
Script: {instanceID: 0}
- Class: 4
Script: {instanceID: 0}
- Class: 21
Script: {instanceID: 0}
- Class: 23
Script: {instanceID: 0}
- Class: 33
Script: {instanceID: 0}
- Class: 43
Script: {instanceID: 0}
- Class: 48
Script: {instanceID: 0}
- Class: 65
Script: {instanceID: 0}
- Class: 114
Script: {fileID: 11500000, guid: a9b8f085a79bbdd41bd808d0a72b1687, type: 3}
- Class: 115
Script: {instanceID: 0}
Assets:
- Assets/Player1.prefab
Dependencies:
- Assets/AssetBundles/player.assetbundle
ClassTypes:---------调用的类型 Assets:-------------打包的资源 Assets/AssetBundles/player.assetbundle------指明依赖的资源,由于我在工程中在Player1.prefab上绑定 脚本,并且该类引用了Player.prefab
----每一个打包文件夹中都包含AssetBundles和AssetBundles.manifest
其中AssetBundles.manifest用于管理资源包的