少年修仙传客户端基础资源
lwb
2020-11-13 48082dc439f184f2e62d4bf23e2dbe7acbd41f52
9527 增加增量打包功能(本地测试用)
2个文件已修改
2个文件已添加
134 ■■■■ 已修改文件
Assets/Editor/Tool/AssetBundleBuildExtersion.cs 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/AssetBundleBuildTool.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/AssetBundleBuildTool.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/UpdateAssetBundleName.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/AssetBundleBuildExtersion.cs
@@ -1,12 +1,12 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class AssetBundleBuildExtersion
{
    public static void Build(string output, string category, BuildAssetBundleOptions bundleOption, BuildTarget buildTarget)
    public static void Build(string output, string category, BuildAssetBundleOptions bundleOption, BuildTarget buildTarget, bool rebuild = true)
    {
        var assetBundles = AssetDatabase.GetAllAssetBundleNames();
        var targetAssetBundles = new List<string>();
@@ -51,12 +51,11 @@
        var manifest = StringUtility.Contact(output, Path.AltDirectorySeparatorChar, GetMainFestFileName(buildTarget), ".manifest");
        var manifestRename = StringUtility.Contact(output, Path.AltDirectorySeparatorChar, category, "_assetbundle.manifest");
        if (Directory.Exists(rootPath))
        {
        if (rebuild && Directory.Exists(rootPath))
            Directory.Delete(rootPath, true);
        }
        Directory.CreateDirectory(rootPath);
        // if (!Directory.Exists(rootPath))
        //     Directory.CreateDirectory(rootPath);
        if (File.Exists(mainFileRename))
        {
@@ -87,20 +86,20 @@
            default:
                return string.Empty;
        }
    }
    [MenuItem("Assets/BuildAssetBundle ( Test )")]
    }
    [MenuItem("Assets/BuildAssetBundle ( Test )")]
    public static void BuildTest()
    {
        if (Selection.activeObject != null)
        {
        if (Selection.activeObject != null)
        {
            var path = AssetDatabase.GetAssetPath(Selection.activeObject);
            var importer = AssetImporter.GetAtPath(path);
            if (importer != null)
            {
                var ab = importer.assetBundleName;
                if (!string.IsNullOrEmpty(ab))
            var importer = AssetImporter.GetAtPath(path);
            if (importer != null)
            {
                var ab = importer.assetBundleName;
                if (!string.IsNullOrEmpty(ab))
                {
                    var assetBundles = AssetDatabase.GetAllAssetBundleNames();
@@ -129,15 +128,15 @@
                        | BuildAssetBundleOptions.DeterministicAssetBundle;
                    var dirctory = Application.dataPath + "/BundleTest";
                    if (!Directory.Exists(dirctory))
                    {
                        Directory.CreateDirectory(dirctory);
                    if (!Directory.Exists(dirctory))
                    {
                        Directory.CreateDirectory(dirctory);
                    }
                    BuildPipeline.BuildAssetBundles(dirctory, assets.ToArray(), opt, BuildTarget.Android);
                }
            }
                    BuildPipeline.BuildAssetBundles(dirctory, assets.ToArray(), opt, BuildTarget.Android);
                }
            }
        }
    }
}
    }
}
Assets/Editor/Tool/AssetBundleBuildTool.cs
New file
@@ -0,0 +1,39 @@
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Collections.Generic;
namespace Assets.Editor.Tool
{
    public class AssetBundleBuildTool
    {
        [MenuItem("Tools/AB增量打包(不设置Label)")]
        static void DoIt()
        {
            BuildAssetBundleOptions opt = BuildAssetBundleOptions.ChunkBasedCompression | BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.StrictMode;
            string outputPath = StringUtility.Contact(Application.streamingAssetsPath, Path.AltDirectorySeparatorChar, EditorUserBuildSettings.activeBuildTarget.ToString());
            if (!Directory.Exists(outputPath))
                Directory.CreateDirectory(outputPath);
            AssetBundleBuildExtersion.Build(outputPath, "builtin", opt, EditorUserBuildSettings.activeBuildTarget,false);
            AssetBundleBuildExtersion.Build(outputPath, "audio", opt, EditorUserBuildSettings.activeBuildTarget,false);
            AssetBundleBuildExtersion.Build(outputPath, "mobeffectshader", opt, EditorUserBuildSettings.activeBuildTarget,false);
            AssetBundleBuildExtersion.Build(outputPath, "config", opt, EditorUserBuildSettings.activeBuildTarget,false);
            TableTool.CopyConfigsToOutPutPath(StringUtility.Contact(outputPath, "/config"));
            LuaBuildHelper.OnPreBuild();
            UpdateLuaSetting.SetAllLuaAssetBundleName();
            AssetBundleBuildExtersion.Build(outputPath, "lua", opt, EditorUserBuildSettings.activeBuildTarget,false);
            LuaBuildHelper.OnPostBuild();
            AssetBundleBuildExtersion.Build(outputPath, "maps", opt, EditorUserBuildSettings.activeBuildTarget,false);
            AssetBundleBuildExtersion.Build(outputPath, "ui", opt, EditorUserBuildSettings.activeBuildTarget,false);
        }
    }
}
Assets/Editor/Tool/AssetBundleBuildTool.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 05891236d737b6346978914f9a70efcb
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor/Tool/UpdateAssetBundleName.cs
@@ -4,6 +4,27 @@
using UnityEditor;
using System.IO;
public class UpdateAllSetting
{
    [MenuItem("程序/设置资源包名/更新全部AssetBundleName")]
    public static void SetAllAssetBundleName()
    {
        UpdateSpriteSetting.SetAllSpriteAssetBundleName();
        UpdateUIWindowSetting.SetAllUIWindowAssetBundleName();
        UpdateUIPrefabSetting.SetAllUIPrefabAssetBundleName();
        UpdateEffectPrefabSetting.SetAllEffectPrefabAssetBundleName();
        UpdateMobSetting.SetAllMobAssetBundleName();
        UpdateShaderSetting.SetAllShaderAssetBundleName();
        UpdateScriptableObjectsSetting.SetAllScriptableObjectAssetBundleName();
        UpdateLevelSetting.SetAllLevelAssetBundleName();
        UpdateAudioSetting.SetAllAudioAssetBundleName();
        UpdateVideoSetting.SetAllVideoAssetBundleName();
        UpdateLuaSetting.SetAllLuaAssetBundleName();
        UpdateBuiltInSetting.SetBuiltinAssetBundleName();
    }
}
public class UpdateSpriteSetting
{