/// <summary> /// 取得宏定义 /// </summary> /// <param name="type"></param> /// <returns></returns> private static string GetDefine(EnumBuidleType type) { string result = string.Empty; //配置宏定义 switch (type) { case EnumBuidleType.ZhengShi: result = DEFINE_ZhengShi; break; case EnumBuidleType.Debug: result = DEFINE_DEBUG; break; case EnumBuidleType.OffLineDebug: result = DEFINE_NOLINE_DEBUG; break; case EnumBuidleType.OffHTTP: result = DEFINE_OFFHTTP_DEBUG; break; } return(result); }
/// <summary> /// Unity配置预先设置 /// </summary> /// <param name="type"></param> static void PerSetting(EnumBuidleType type) { PlayerSettings.productName = BUILD_NAME; //GetBuildName(type); //设置版本号 PlayerSettings.bundleVersion = CURRENT_VERSION; // GetVersion(); //PlayerSettings.Android.bundleVersionCode = GetAndroidVersionCode(); //设置开发版 //EditorUserBuildSettings.development = IS_DEVELOPER; //设置可否调试 //EditorUserBuildSettings.allowDebugging = ALLOW_DEBUG; //设置游戏质量 //QualitySettings.antiAliasing = ANTI_ALIASING; //抗锯齿 可设置为 0,2,4,8 对应每个像素使用多重采样的数量 QualitySettings.vSyncCount = 0; //更新版本号 //VersionClient.Versionclient_Update(GetVersion()); //刷新Unity保存 AssetDatabase.Refresh(); }
/// <summary> /// 通用打包函数 /// </summary> /// <param name="buidleType"></param> /// <param name="type"></param> /// <param name="BuildName"></param> /// <param name="isClearPath"></param> private static void BuidleByType(EnumBuidleType buidleType, BuildTarget type, bool isClearPath = false) { //取得保存路径 string savePath = GetTargetDirPath(); //取得保存exe路径 string saveExEPath = savePath + GetSavePath(buidleType, type); savePath = savePath + buidleType.ToString(); if (isClearPath) { //清空目录 ClearPath(saveExEPath); } //删除已经存在的游戏包 if (System.IO.File.Exists(saveExEPath)) { System.IO.File.Delete(saveExEPath); } //创建目录 MakePath(saveExEPath); UnityEngine.Debug.Log("保存路径" + saveExEPath); //UnityEngine.Debug.Log("TYPE" + (type == BuildTarget.iOS)); //设置预先配置信息 PerSetting(buidleType); ////刷新Unity保存 //AssetDatabase.Refresh(); //设置宏定义 SetBuildingDefine(GetBuildTargetGroup(type), GetDefine(buidleType)); //取得打包Options BuildPlayerOptions option = GetBuildPlayerOptions(type, saveExEPath); //打包 BuildForPlatform(option, savePath); }
/// <summary> /// 取得保存 目的地址 /// </summary> /// <param name="type"></param> /// <param name="target"></param> /// <returns></returns> private static string GetSavePath(EnumBuidleType type, BuildTarget target) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); switch (target) { case BuildTarget.StandaloneWindows: case BuildTarget.StandaloneWindows64: sb.Append(type.ToString()); sb.Append("\\"); sb.Append(Application.productName); sb.Append("."); sb.Append(CURRENT_VERSION); sb.Append("."); sb.Append(type.ToString()); sb.Append(".exe"); break; default: break; } return(sb.ToString()); }
/// <summary> /// PC 打包函数 /// </summary> /// <param name="buidleType"></param> /// <param name="isClearPath"></param> private static void BuidlePCByType(EnumBuidleType buidleType, bool isClearPath = false) { BuidleByType(buidleType, BuildTarget.StandaloneWindows, isClearPath); }