예제 #1
0
        public static void Build(PlatformType type, BuildAssetBundleOptions buildAssetBundleOptions,
                                 BuildOptions buildOptions, bool isBuildExe, bool isContainAB, bool clearFolder)
        {
            BuildTarget buildTarget = BuildTarget.StandaloneWindows;
            string      exeName     = "ZFramework";

            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);
            }
            Debug.Log("开始资源打包");
            BuildPipeline.BuildAssetBundles(fold, buildAssetBundleOptions, buildTarget);
            Debug.Log("打包资源完成");

            if (isContainAB)
            {
                FileHelper.CleanDirectory("Assets/StreamingAssets/");
                FileHelper.CopyDirectory(fold, "Assets/StreamingAssets");
            }

            if (isBuildExe)
            {
                AssetDatabase.Refresh();
                string[] levels = { "Assets/Scenes/Init.unity" };
                Debug.Log("开始exe打包");
                BuildPipeline.BuildPlayer(levels, $"{relativeDirPrefix}/{exeName}", buildTarget, buildOptions);
                Debug.Log("完成exe打包");
            }
            //更新md5
            Debug.Log("更新md5");
            MD5Helper.BuildVersion();
            Debug.Log("更新md5完成");
        }