// using System; // using System.Collections.Generic; // using System.IO; // using Sirius.Runtime; // using UnityEditor; // using UnityEditor.Build; // using UnityEngine; // using UnityGameFramework.Runtime; // using YooAsset.Editor; // // namespace ZhaoluGame // { // public class BuildHelper // { // static string VersionName = ""; // private static string PlatName = ""; // static string ProductName = ""; // private static BuildTarget BT; // private static int BuildVersion; // private static EBuildMode EBuildMode; // // public static string BuildFolder = "../Release/{0}/{1}/"; // // public static void BuildFormCammond() // { // VersionName = GetShellCmdArg("VersionName"); // PlatName = GetShellCmdArg("PlatName"); // ProductName = GetShellCmdArg("ProductName"); // Build(); // } // // [MenuItem("AA/Build_Client")] // public static void Build_Dev_MacOS() // { // VersionName = "Dev"; // PlatName = GetPlatName(); // ProductName = "FromSky"; // Build(); // } // // [MenuItem("AA/Release/Build_Android_Client")] // public static void Build_Release_Android() // { // VersionName = "Release"; // PlatName = "Android"; // ProductName = "FromSky.apk"; // Build(); // } // // public static void Build() // { // BuildTarget buildTarget = GetBuildTargetByName(PlatName); // // string fold = string.Format(BuildFolder, VersionName, PlatName); // if (!Directory.Exists(fold)) // { // Directory.CreateDirectory(fold); // } // // SetICon(VersionName); // // AssetDatabase.Refresh(); // // string[] levels = GetLevelsFromBuildSettings(); // Log.Info("Unity: 开始 Build Client"); // // BuildOptions buildOptions = BuildOptions.AllowDebugging | BuildOptions.ConnectWithProfiler | // BuildOptions.AutoRunPlayer | BuildOptions.Development | // BuildOptions.EnableDeepProfilingSupport; // // buildOptions = BuildOptions.None; // BuildPipeline.BuildPlayer(levels, $"{fold}/{ProductName}", buildTarget, buildOptions); // // Log.Info("Unity: 完成 Build Client"); // } // // public static void SetICon(string VersionName) // { // var texture = // (Texture2D) AssetDatabase.LoadAssetAtPath( // $"Assets/Resources/Pictures/AppIcon/AppIcon-{VersionName}.png", typeof(Texture2D)); // var texs = new[] {texture, texture, texture, texture, texture, texture, texture, texture}; // PlayerSettings.SetIcons(NamedBuildTarget.Standalone, texs, IconKind.Any); // } // // public static void SetBuildInfo(string vName) // { // string path = $"Assets/Resources/BuildInfo.txt"; // var handle = AssetDatabase.LoadAssetAtPath(path); // var versionJson = handle.text; // BuildInfo buildInfo = JsonUtility.FromJson(versionJson); // // if (vName == "Dev") // { // buildInfo.AssetUrl = "http://192.168.0.109:1234"; // } // // if (vName == "Release") // { // buildInfo.AssetUrl = "https://formsky.oss-cn-hangzhou.aliyuncs.com"; // } // // var json = JsonUtility.ToJson(buildInfo); // // var filePath = Application.dataPath.Replace("Assets", path); // File.WriteAllText(filePath, json); // } // // public static void SettScriptingDefineSymbols(BuildTargetGroup btg) // { // string[] defineSymbols = // { // "NET452", // "THREAD_SAFE", // }; // PlayerSettings.SetScriptingDefineSymbolsForGroup(btg, defineSymbols); // switch (btg) // { // case BuildTargetGroup.Android: // EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.Android); // break; // case BuildTargetGroup.Standalone: // EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.StandaloneWindows64); // break; // } // } // // [MenuItem("Tools/Bundle Exe")] // public static void BundleExe() // { // var nowTarget = EditorUserBuildSettings.selectedBuildTargetGroup; // SettScriptingDefineSymbols(BuildTargetGroup.Standalone); // // BuildScript.BuildBundles(); // AssetDatabase.Refresh(); // SettScriptingDefineSymbols(nowTarget); // } // // [MenuItem("Tools/Bundle Apk")] // public static void BundleApk() // { // var nowTarget = EditorUserBuildSettings.selectedBuildTargetGroup; // SettScriptingDefineSymbols(BuildTargetGroup.Android); // // AssetDatabase.Refresh(); // // // BuildScript.BuildBundles(); // // AssetDatabase.Refresh(); // SettScriptingDefineSymbols(nowTarget); // } // // [MenuItem("Tools/DefineSymbols")] // public static void SettScriptingDefineSymbolsPc() // { // SettScriptingDefineSymbols(EditorUserBuildSettings.selectedBuildTargetGroup); // } // // public static string[] GetLevelsFromBuildSettings() // { // List scenes = new List(); // scenes.Add("Assets/GameMain/Scenes/Entry.unity"); // scenes.Add("Assets/GameMain/Scenes/PreScene.unity"); // scenes.Add("Assets/GameMain/Scenes/MainScene.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/00_test.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/01_test.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/1.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/2.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/3.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/4.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/5.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/6.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/7.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/8.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/9.unity"); // scenes.Add("Assets/GameMain/Scenes/Battle/10.unity"); // return scenes.ToArray(); // } // // public static string GetShellCmdArg(string argName) // { // { // #if UNITY_EDITOR // //在这里分析shell传入的参数, 还记得上面我们说的哪个 project-$1 这个参数吗? // //这里遍历所有参数,找到 project开头的参数, 然后把-符号 后面的字符串返回, // foreach (string arg in System.Environment.GetCommandLineArgs()) // { // if (arg.StartsWith(argName)) // { // return arg.Split("="[0])[1]; // } // } // #endif // } // Debug.LogError($"这个参数未输入! {argName}"); // return ""; // } // // public static BuildTarget GetBuildTargetByName(string plat) // { // BuildTarget buildTarget = BuildTarget.StandaloneOSX; // if (plat == "MacOS") // { // buildTarget = BuildTarget.StandaloneOSX; // } // else if (plat == "Win") // { // buildTarget = BuildTarget.StandaloneWindows64; // } // else if (plat == "Android") // { // buildTarget = BuildTarget.Android; // } // // return buildTarget; // } // // public static string GetPlatName() // { // if (Environment.OSVersion.Platform == PlatformID.Unix) // { // PlatName = "MacOS"; // } // else // { // PlatName = "Win"; // } // return PlatName; // } // // public static void BuildYooAssetFromCommand() // { // var BuildTargetStr = GetShellCmdArg("BuildTarget"); // if (BuildTargetStr == "Android") // BT = BuildTarget.Android; // // var BuildVersionStr = GetShellCmdArg("BuildVersion"); // int.TryParse(BuildVersionStr, out BuildVersion); // // var EBuildModeStr = GetShellCmdArg("EBuildMode"); // if (EBuildModeStr == EBuildMode.ForceRebuild.ToString()) // EBuildMode = EBuildMode.ForceRebuild; // if (EBuildModeStr == EBuildMode.IncrementalBuild.ToString()) // EBuildMode = EBuildMode.IncrementalBuild; // // BuildYooAssetInternel(); // } // // [MenuItem("Tools/BuildYooAsset")] // public static void BuildYooAssetInternel() // { // Debug.Log($"开始构建"); // // // 构建参数 // string projectPath = EditorTools.GetProjectPath(); // string defaultOutputRoot = $"{projectPath}/../../blackcat-update"; // BuildParameters buildParameters = new BuildParameters(); // buildParameters.OutputRoot = defaultOutputRoot; // buildParameters.BuildTarget = BT; // buildParameters.BuildMode = EBuildMode; // buildParameters.BuildVersion = BuildVersion; // buildParameters.BuildinTags = "buildin"; // buildParameters.VerifyBuildingResult = true; // buildParameters.EnableAddressable = true; // buildParameters.AppendFileExtension = false; // buildParameters.CopyBuildinTagFiles = true; // buildParameters.EncryptionServices = new GameEncryption(); // buildParameters.CompressOption = ECompressOption.LZ4; // // // 执行构建 // AssetBundleBuilder builder = new AssetBundleBuilder(); // builder.Run(buildParameters); // // Debug.Log($"构建完成"); // } // } // }