| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System.IO;
- using UnityEditor;
- namespace ET
- {
- public static class BuildHelper
- {
- private const string relativeDirPrefix = "../Release";
- public static string BuildFolder = "../Release/{0}/StreamingAssets/";
- [MenuItem("Tools/web资源服务器")]
- public static void OpenFileServer()
- {
- ProcessHelper.Run("dotnet", "FileServer.dll", "../FileServer/");
- }
- public static void Build(PlatformType type, BuildAssetBundleOptions buildAssetBundleOptions, BuildOptions buildOptions, bool isBuildExe, bool isContainAB, bool clearFolder)
- {
- BuildTarget buildTarget = BuildTarget.StandaloneWindows;
- string exeName = "ET";
- switch (type)
- {
- case PlatformType.PC:
- buildTarget = BuildTarget.StandaloneWindows64;
- exeName += ".exe";
- break;
- case PlatformType.Android:
- buildTarget = BuildTarget.Android;
- exeName += ".apk";
- break;
- case PlatformType.IOS:
- buildTarget = BuildTarget.iOS;
- break;
- case PlatformType.MacOS:
- buildTarget = BuildTarget.StandaloneOSX;
- break;
- }
- string fold = string.Format(BuildFolder, type);
- if (clearFolder && Directory.Exists(fold))
- {
- Directory.Delete(fold, true);
- Directory.CreateDirectory(fold);
- }
- else
- {
- Directory.CreateDirectory(fold);
- }
- Log.Info("开始资源打包");
- BuildPipeline.BuildAssetBundles(fold, buildAssetBundleOptions, buildTarget);
- Log.Info("完成资源打包");
- if (isContainAB)
- {
- FileHelper.CleanDirectory("Assets/StreamingAssets/");
- FileHelper.CopyDirectory(fold, "Assets/StreamingAssets/");
- }
- if (isBuildExe)
- {
- AssetDatabase.Refresh();
- string[] levels = {
- "Assets/Scenes/Init.unity",
- };
- Log.Info("开始EXE打包");
- BuildPipeline.BuildPlayer(levels, $"{relativeDirPrefix}/{exeName}", buildTarget, buildOptions);
- Log.Info("完成exe打包");
- }
- }
- }
- }
|