AssetBundle打包和配置流程详解

1)笔记

1)AssetBundle打包配置操作
  Editor/AssetPackage/Database/AssetsPackage--> Lua.asset(对象数据直接存到文件里面);

  指定了我们的哪个文件打包哪些文件到我们的AssetBundle,也指定了打包方式有哪些;

  如果你的文件夹,没有被指定打包,生成AssetBundle,那么在这个文件夹下就会有一个按钮: Create AssetBundle Dispatcher:
     点击完以后,选择Apply,那么在Editor/AssetBundle/DataBase/AssetsPackage下面就会生成同名文件夹对应的Sounds.asset文件,
     打包Sounds文件夹的配置文件

     AssetsMap:存放了打出了哪些资源包,

     打包的类型:
       Root:就是以这个文件夹为根目录,来打包AssetBundle-->lua.assetbundle,规则是:路径/名字.assetbundle;
       
       Children: 文件夹下的每个孩子都会作为单独的assetbundle打包出来,
                 lua/managers.assetbunble-->所有文件都打入进去;
                 lua/component.assetbundle
                 lua/game.assetbundle
                 lua/main_lua_bytes.assetbundle,Lua/main.lua.bytes  这个是文件

       Children Folders Only:只会打包文件夹,没有打包文件了
                lua/managers.assetbunble-->所有文件都打入进去;
                lua/component.assetbundle
                lua/game.assetbundle

       Children Files Only:只会打包文件
           只会打包下面的文件,不会打包文件夹: 路径/名字.assetbundle

2)Unity ScriptableObject详解
	C#对象如果你继承自 ScriptableObject-->将你的数据,写入到 .asset
	AssetBundleDispatcherConfig.cs-->AssetBundleDispatcherConfig

	var instance = CreateInstance();
	AssetDatabase.CreateAsset(对象实例, 路径);
	AssetDatabase.Refresh();

   类的名字:AssetBundleDispatcherConfig--》文件名字 一致-->AssetBundleDispatcherConfig.cs;

3)扩展编辑器给AssetPackage下面的资源添加按钮
	AssetBundleDispatcherInspector.cs文件里面
	有AssetBundleDispatcherInspector

	每次属性检查器刷新的时候,AssetBundleDispatcherInspector-->重载了OnInspectorGUI();被回调:
		(1)调用父类: base.OnInspectorGUI()
		(2)StartsWith前面路径有没有: Assets/AssetPackage 前缀,有则是在这个文件夹下;
		   创建按钮,视图
		   编辑配置模式的一个视图
		(3)OnEnable-->Initialize  dispatcherConfig 这个数据库文件夹路径下是否有这个文件夹的配置;
		每次选中这个文件夹的时候,我们会调用Initialize:
		  	默认Root打包方式
		  	获取我们选的当前的路径
		  	是否在
		  	Assets/AssetsPackage/Lua--> 变成Lua
		(4)AssetsPathToPackagePath-->将前缀 Assets?AssetsPackage/去掉, Lua;
		(5)AssetsBundleInspectorUtils.AssetPathToDatabasePath--> 
		    "Assets/Editor/AssetBundle/Database/AssetsPackage/Lua.asset"
 		(6)之前你如果创建了 .asset文件,那么我们从数据库下去加载这个文件;
 		 	AssetBundleDispatcherConfig-->数据对象;
 		 	数据库文件没有, null


4)创建一个.asset数据文件的全流程
  打包的时候可以做资源监察;

  Run All Checks-->根据数据库文件,来检测我们的资源包下面的文件夹我们是否都有;
    (1)运行Lua脚本拷贝,将我们的Lua脚本拷贝到AssetsPackage路径下;

    AssetbundleMenuItems.cs
       拷贝Lua代码到我们的资源包里面

       清理掉所有的Assetbundle里面的内容

    (2)清理掉不用的assetbundle的名字,重新创建assetbundle的名字

    (3)读取所有的数据库文件,每次读取的时候,将数据都load进来:

    (4)AssetBundleDispatcher.Run(config)

 

你可能感兴趣的:(AssetBundle打包和配置流程详解)