// ================================================================================================================= // === utility functions =========================================================================================== static List <string> GetScenesForBuild(E_ApplicationType inTarget, E_BuildType buildType = E_BuildType.Universal) { // ................................................... // get scenes from editor build settings, // exclude disabled ones and scenes which are not levels... List <string> listOfScenes = new List <string>(); // ................................................... // add some global scenes... listOfScenes.Add("assets/Levels/Multiplayer/mp_core.unity"); listOfScenes.Add("assets/Levels/Multiplayer/mp_vortex.unity"); listOfScenes.Add("Assets/Levels/empty.unity"); // ................................................... // add per target scenes... switch (inTarget) { case E_ApplicationType.DedicatedServer: listOfScenes.Insert(0, "Assets/Levels/DedicatedServer.unity"); break; case E_ApplicationType.WebPlayerClient: // listOfScenes.Add("Assets/Levels/InitGame.unity"); goto case E_ApplicationType.AndroidClient; case E_ApplicationType.OSXClient: goto case E_ApplicationType.AndroidClient; case E_ApplicationType.PCClient: goto case E_ApplicationType.AndroidClient; case E_ApplicationType.AndroidClient: listOfScenes.Add("Assets/Levels/Gui_16_9.unity"); //listOfScenes.Add("assets/Levels/Multiplayer/loading.unity"); //listOfScenes.Add("assets/Levels/Multiplayer/loadingcustomize.unity"); //listOfScenes.Add("assets/Levels/Multiplayer/loadinggetpremium.unity"); listOfScenes.Add("assets/Levels/LoadingToGame.unity"); listOfScenes.Add("assets/Levels/LoadingFromGame.unity"); listOfScenes.Add("Assets/Levels/MainMenu.unity"); listOfScenes.Insert(0, "Assets/Levels/InitGame.unity"); break; case E_ApplicationType.IOSClient: goto case E_ApplicationType.AndroidClient; default: Debug.LogError("Unknown target. Abort !!!"); return(null); } return(listOfScenes); }
static void BuildAndroidClient(string defineSymbols = "", E_BuildType buildType = E_BuildType.Universal) { if (EditorUserBuildSettings.selectedBuildTargetGroup != BuildTargetGroup.Android) { Debug.LogError("Invalid build target group (" + EditorUserBuildSettings.selectedBuildTargetGroup + ") \n." + "In this moment we are able to build only android clients..."); return; } /*if(EditorUserBuildSettings.androidBuildSubtarget != AndroidBuildSubtarget.DXT) * { * Debug.LogError("Invalid android sub target (" + EditorUserBuildSettings.androidBuildSubtarget + ") \n."+ * "In this moment we support only DXT android clients..."); * return; * }*/ // ............................................. // Start to build player... string infoPrefix = "==== Client build "; Debug.Log(infoPrefix + "started."); // ............................................. // get scenes for dedicated server... List <string> listOfScenes = GetScenesForBuild(E_ApplicationType.AndroidClient, buildType); if (listOfScenes.Count <= 0) { Debug.LogWarning(infoPrefix + "List of scenes is empty"); return; } Debug.Log(infoPrefix + ", Building Scenes: " + ConvertStringArrayToString(listOfScenes.ToArray())); // ............................................. // prepare output directory... MobileTextureSubtarget androidSubTarget = EditorUserBuildSettings.androidBuildSubtarget; string subTarget = androidSubTarget.ToString().ToLower(); string buildName = buildType != E_BuildType.Universal ? ("_" + buildType.ToString()) : string.Empty; string outputDirectory = "../_Packages/AndroidPlayer_" + subTarget + buildName + "/"; System.IO.Directory.CreateDirectory(outputDirectory); Debug.Log(infoPrefix + "Output directory: " + outputDirectory); // ............................................. // prepare player name... string playerName = outputDirectory + "DeadZone_" + subTarget + buildName + ".apk"; Debug.Log(infoPrefix + "Player name: " + playerName); // ............................................. // apply settings from ApplyAndroidSecretSettings(outputDirectory + "Settings.json"); // if we are using split apk add loader level if (PlayerSettings.Android.useAPKExpansionFiles == true) { listOfScenes.Insert(0, "MadFinger Assets/Levels/Loader.unity"); } Build(E_ApplicationType.AndroidClient, listOfScenes.ToArray(), playerName, BuildTarget.Android, BuildOptions.None, defineSymbols); Debug.Log(infoPrefix + "DONE."); }