少年修仙传客户端基础资源
client_Wu Xijin
2019-05-20 d575559bfe94785e424aa31cd40ff70ffb5aa4af
Assets/Editor/Tool/BuildExtersion.cs
@@ -15,6 +15,27 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                var levelPattern = "001";
                var versionsFilePath = Application.dataPath + Path.DirectorySeparatorChar + "Editor/VersionConfigs/Versions.txt";
                var lines = File.ReadAllLines(versionsFilePath);
                for (int i = 2; i < lines.Length; i++)
                {
                    var line = lines[i];
                    var lineStrings = line.Split('\t');
                    if (lineStrings[0] == buildParameters.publisher)
                    {
                        levelPattern = lineStrings[22];
                        break;
                    }
                }
                if (!string.IsNullOrEmpty(levelPattern))
                {
                    UpdateLevelSetting.SetCreateRoleLevel(levelPattern);
                    AssetDatabase.Refresh();
                }
                UpdateLevelSetting.SetAllLevelAssetBundleName();
                ExcuteBuildAsset("maps", buildParameters);
            }
            else
@@ -37,6 +58,7 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                UpdateEffectPrefabSetting.SetAllEffectPrefabAssetBundleName();
                ExcuteBuildAsset("effect", buildParameters);
            }
            else
@@ -59,6 +81,7 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                UpdateMobSetting.SetAllMobAssetBundleName();
                ExcuteBuildAsset("mob", buildParameters);
            }
            else
@@ -81,7 +104,9 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                UpdateScriptableObjectsSetting.SetAllScriptableObjectAssetBundleName();
                ExcuteBuildAsset("config", buildParameters);
                TableTool.CopyConfigsToOutPutPath(StringUtility.Contact(buildParameters.GetWholeOutPutPath(), "/config"));
            }
            else
            {
@@ -94,6 +119,31 @@
            Debug.Log(ex);
            EditorApplication.Exit(1);
        }
    }
    public static void BuildLua()
    {
        try
        {
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                LuaBuildHelper.OnPreBuild();
                UpdateLuaSetting.SetAllLuaAssetBundleName();
                ExcuteBuildAsset("lua", buildParameters);
                LuaBuildHelper.OnPostBuild();
            }
            else
            {
                EditorApplication.Exit(1);
            }
        }
        catch (Exception ex)
        {
            Debug.Log("打包lua失败");
            Debug.Log(ex);
            EditorApplication.Exit(1);
        }
    }
    public static void BuildAudio()
@@ -103,7 +153,11 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                UpdateAudioSetting.SetAllAudioAssetBundleName();
                ExcuteBuildAsset("audio", buildParameters);
               // UpdateVideoSetting.SetAllVideoAssetBundleName();
               // ExcuteBuildAsset("video", buildParameters);
            }
            else
            {
@@ -116,8 +170,8 @@
            Debug.Log(ex);
            EditorApplication.Exit(1);
        }
    }
    }
    public static void BuildShader()
    {
        try
@@ -125,6 +179,7 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                UpdateShaderSetting.SetAllShaderAssetBundleName();
                ExcuteBuildAsset("graphic", buildParameters);
            }
            else
@@ -147,6 +202,30 @@
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                AssetSource.allFromEditor = true;
                //CheckFontSwitch.CheckAndReplaceFontSwitch();
                UpdateUIPrefabSetting.SetAllUIPrefabAssetBundleName();
                UpdateUIWindowSetting.SetAllUIWindowAssetBundleName();
                var rechargePattern = 1;
                var versionsFilePath = Application.dataPath + Path.DirectorySeparatorChar + "Editor/VersionConfigs/Versions.txt";
                var lines = File.ReadAllLines(versionsFilePath);
                for (int i = 2; i < lines.Length; i++)
                {
                    var line = lines[i];
                    var lineStrings = line.Split('\t');
                    if (lineStrings[0] == buildParameters.publisher)
                    {
                        rechargePattern = int.Parse(lineStrings[21]);
                        break;
                    }
                }
                UpdateSpriteSetting.SetRechargeSkin(rechargePattern);
                AssetDatabase.Refresh();
                UpdateSpritePackingSetting.UpdateAllSpritePackingSetting();
                UpdateSpriteSetting.SetAllSpriteAssetBundleName();
                ExcuteBuildAsset("ui", buildParameters);
            }
            else
@@ -162,16 +241,43 @@
        }
    }
    public static void BuildBuiltIn()
    {
        try
        {
            var buildParameters = new BuildParameters();
            if (!buildParameters.error)
            {
                var publisher = buildParameters.publisher;
                BuiltInResourceSetting.SetLaunchBackGround(publisher, buildParameters.buildTarget);
                BuiltInResourceSetting.SetLoginBackGround(publisher, buildParameters.buildTarget);
                BuiltInResourceSetting.SetLoginLogo(publisher, buildParameters.buildTarget);
                UpdateBuiltInSetting.SetAllLuaAssetBundleName();
                ExcuteBuildAsset("builtin", buildParameters);
            }
            else
            {
                EditorApplication.Exit(1);
            }
        }
        catch (Exception ex)
        {
            Debug.Log("打包builtin失败");
            Debug.Log(ex);
            EditorApplication.Exit(1);
        }
    }
    public static void MakeAssetVersionFile()
    {
        try
        {
            var buildParameters = new BuildParameters();
            if (buildParameters.error)
            if (!buildParameters.error)
            {
                var fileInfoes = new List<FileInfo>();
                FileExtersion.GetAllDirectoryFileInfos(buildParameters.outputPath, fileInfoes);
                AssetsVersionMaker.WriteAssetsVersionFile(buildParameters.outputPath, fileInfoes);
                FileExtersion.GetAllDirectoryFileInfos(buildParameters.GetWholeOutPutPath(), fileInfoes);
                AssetsVersionMaker.WriteAssetsVersionFile(buildParameters.GetWholeOutPutPath(), fileInfoes);
            }
            else
            {
@@ -186,20 +292,20 @@
        }
    }
    private static void ExcuteBuildAsset(string _category, BuildParameters _params)
    private static void ExcuteBuildAsset(string category, BuildParameters @params)
    {
        var opt = BuildAssetBundleOptions.None;
        opt |= BuildAssetBundleOptions.ChunkBasedCompression;
        opt |= BuildAssetBundleOptions.DeterministicAssetBundle;
        AssetBundleBuildExtersion.Build(_params.outputPath, _category, opt, _params.buildTarget);
        AssetBundleBuildExtersion.Build(@params.GetWholeOutPutPath(), category, opt, @params.buildTarget);
    }
    class BuildParameters
    {
        public bool error = false;
        public string outputPath;
        public string publisher;
        public BuildTarget buildTarget;
        public BuildParameters()
@@ -224,7 +330,14 @@
                            case "ios":
                                buildTarget = BuildTarget.iOS;
                                break;
                            case "standalone":
                                buildTarget = BuildTarget.StandaloneWindows;
                                break;
                        }
                    }
                    else if (arg.ToLower() == "-publisher")
                    {
                        publisher = args[i + 1];
                    }
                }
@@ -238,6 +351,20 @@
            }
        }
        public string GetWholeOutPutPath()
        {
            switch (buildTarget)
            {
                case BuildTarget.Android:
                    return StringUtility.Contact(outputPath, "/android");
                case BuildTarget.iOS:
                    return StringUtility.Contact(outputPath, "/ios");
                case BuildTarget.StandaloneWindows:
                    return StringUtility.Contact(outputPath, "/standalone");
                default:
                    return string.Empty;
            }
        }
    }
}