123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- using UnityEditor;
- using UnityEngine;
- using System;
- using System.IO;
- using System.Collections;
- using System.Collections.Generic;
- public class BuildForAllPlatforms : EditorWindow
- {
- private static PayChannel PayChannel;
- private static int versionCode = 1;
- private static string version = "1.0.0";
- private static string gameName = "MyLovelyGarden";
- private static string companyName = "DashGame Technology Inc.";
- private static ApiCompatibilityLevel apiCompatLevel = ApiCompatibilityLevel.NET_2_0;
- //string path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", "", "");
- static string path = "build";
- // iOS
- private static string iOSBundleIdentifier = "com.dashgame.garden";
- private static iOSTargetDevice iOSTargetDev = iOSTargetDevice.iPhoneOnly;
- //private static iOSTargetOSVersion iOSTargetVer = iOSTargetOSVersion.iOS_8_0;
- // Android
- private static string androidBundleIdentifier = "com.dashgame.garden";
- private static AndroidSdkVersions androidMinSdk = AndroidSdkVersions.AndroidApiLevel16; // Jellybean;
- [MenuItem("DashGame/PlayerBuilder")]
- private static void ShowWindow()
- {
- versionCode = PlayerSettings.Android.bundleVersionCode;
- version = PlayerSettings.bundleVersion;
- // Get existing open window or if none, make a new one:
- BuildForAllPlatforms window = (BuildForAllPlatforms)EditorWindow.GetWindow(typeof(BuildForAllPlatforms), false, "Player Builder");
- window.Show();
- }
- void OnGUI()
- {
- version = EditorGUILayout.TextField("Version", version);
- versionCode = int.Parse(EditorGUILayout.TextField("VersionCode", versionCode.ToString()));
- PayChannel = (PayChannel) EditorGUILayout.EnumPopup(PayChannel);
- if (PayChannel == PayChannel.AliPay)
- {
- File.WriteAllText(Application.dataPath + "/Script/Editor/Setting.txt", "AliPay");
- }
- else if (PayChannel == PayChannel.UnityIAP)
- {
- File.WriteAllText(Application.dataPath + "/Script/Editor/Setting.txt", "UnityIAP");
- }
- if (GUILayout.Button("Android", GUILayout.Height(30)))
- BuildAndroid();
- if (GUILayout.Button("iOS", GUILayout.Height(30)))
- BuildiOS();
- if (GUILayout.Button("iOS Debug", GUILayout.Height(30)))
- BuildiOSDebug();
- if (GUILayout.Button("Win32", GUILayout.Height(30)))
- BuildWin32();
- if (GUILayout.Button("OSX 64", GUILayout.Height(30)))
- BuildOSX64();
- }
- public static void BuildWin32()
- {
- // Get build path
- string[] levels = GetLevelPaths();
- DGFileUtil.CreateDirectoryWhenNotExists (path + "/win32/");
- // Build win32 player.
- BuildPipeline.BuildPlayer
- (
- levels,
- path + "/win32/" + gameName + ".exe",
- BuildTarget.StandaloneWindows,
- BuildOptions.None
- );
- UpdateInfo();
- OpenFolder(path + "/win32");
- }
- public static void BuildOSX64()
- {
- // Get build path
- string[] levels = GetLevelPaths();
- DGFileUtil.CreateDirectoryWhenNotExists (path + "/osx64/");
- // Setup settings shared between Android and iOS
- // PlayerSettings.bundleVersion = Version;
- PlayerSettings.apiCompatibilityLevel = apiCompatLevel;
- PlayerSettings.companyName = companyName;
- PlayerSettings.productName = gameName;
- // Build osx64 player
- BuildPipeline.BuildPlayer
- (
- levels,
- path + "/osx64/" + gameName + ".app",
- BuildTarget.StandaloneOSXIntel64,
- BuildOptions.None
- );
- UpdateInfo();
- OpenFolder(path + "/osx64");
- }
- public static void BuildiOS()
- {
- // Get build path
- string[] levels = GetLevelPaths();
- DGFileUtil.CreateDirectoryWhenNotExists (path + "/ios/");
- // Setup settings shared between Android and iOS
- // PlayerSettings.bundleVersion = Version;
- PlayerSettings.apiCompatibilityLevel = apiCompatLevel;
- // Setup settings for iOS player
- PlayerSettings.iPhoneBundleIdentifier = iOSBundleIdentifier;
- PlayerSettings.iOS.targetDevice = iOSTargetDev;
- //PlayerSettings.iOS.targetOSVersion = iOSTargetVer;
- PlayerSettings.iOS.allowHTTPDownload = true;
- PlayerSettings.stripEngineCode = true;
- PlayerSettings.strippingLevel = StrippingLevel.UseMicroMSCorlib;
- // Build iOS player
- BuildPipeline.BuildPlayer
- (
- levels,
- path + "/ios/",
- BuildTarget.iOS,
- BuildOptions.Il2CPP | BuildOptions.AcceptExternalModificationsToPlayer | BuildOptions.SymlinkLibraries
- );
- UpdateInfo();
- OpenFolder(path + "/ios");
- }
- public static void BuildiOSDebug()
- {
- // Get build path
- string[] levels = GetLevelPaths();
- DGFileUtil.CreateDirectoryWhenNotExists (path + "/ios/");
- // Setup settings shared between Android and iOS
- // PlayerSettings.bundleVersion = Version;
- PlayerSettings.apiCompatibilityLevel = apiCompatLevel;
- // Setup settings for iOS player
- PlayerSettings.iPhoneBundleIdentifier = iOSBundleIdentifier;
- PlayerSettings.iOS.targetDevice = iOSTargetDev;
- //PlayerSettings.iOS.targetOSVersion = iOSTargetVer;
- PlayerSettings.iOS.allowHTTPDownload = true;
- //PlayerSettings.SetPropertyInt( "ScriptingBackend", (int)ScriptingImplementation.Mono2x, BuildTargetGroup.iOS );
- // Build iOS player
- BuildPipeline.BuildPlayer
- (
- levels,
- path + "/ios/",
- BuildTarget.iOS,
- BuildOptions.Il2CPP | BuildOptions.Development
- |BuildOptions.AllowDebugging | BuildOptions.ConnectWithProfiler | BuildOptions.AcceptExternalModificationsToPlayer |
- BuildOptions.SymlinkLibraries
- );
- UpdateInfo();
- OpenFolder(path + "/ios");
- }
- public static void BuildAndroid()
- {
- // Get build path
- string[] levels = GetLevelPaths();
- DGFileUtil.CreateDirectoryWhenNotExists (path + "/android/");
- // Setup settings shared between Android and iOS
- // PlayerSettings.bundleVersion = version;
- // PlayerSettings.Android.bundleVersionCode = versionCode;
- PlayerSettings.apiCompatibilityLevel = apiCompatLevel;
- // Setup settings for Android player
- // PlayerSettings.Android.bundleVersionCode = VersionCode;
- PlayerSettings.Android.minSdkVersion = androidMinSdk;
- PlayerSettings.Android.androidIsGame = true;
- PlayerSettings.bundleIdentifier = androidBundleIdentifier;
- PlayerSettings.Android.targetDevice = AndroidTargetDevice.ARMv7;
- PlayerSettings.strippingLevel = StrippingLevel.Disabled;
- // PlayerSettings.Android.keystoreName = "DashGame.keystore";
- // PlayerSettings.Android.keystorePass = "dashabby";
- // PlayerSettings.Android.keyaliasName = "DashGame";
- // PlayerSettings.Android.keyaliasPass = "dashabby";
- // Build Android player
- BuildPipeline.BuildPlayer
- (
- levels,
- path + "/android/" + gameName + ".apk",
- BuildTarget.Android,
- BuildOptions.None
- );
- UpdateInfo();
- OpenFolder(path + "/android");
- }
- private static string[] GetLevelPaths()
- {
- List<string> temp = new List<string>();
- foreach (UnityEditor.EditorBuildSettingsScene scene in UnityEditor.EditorBuildSettings.scenes)
- {
- if (scene.enabled)
- {
- temp.Add(scene.path);
- }
- }
- return temp.ToArray();
- }
- private static void UpdateInfo(){
- PlayerSettings.Android.bundleVersionCode = versionCode;
- PlayerSettings.bundleVersion = version;
- }
- private static void OpenFolder(string dir){
- Application.OpenURL(dir);
- }
- void OnInspectorUpdate()
- {
- versionCode = PlayerSettings.Android.bundleVersionCode;
- version = PlayerSettings.bundleVersion;
- this.Repaint();
- }
- }
|