private void RunInEditor() { AltUnityBuilder.InsertAltUnityInTheFirstScene(); AltUnityBuilder.AddAltUnityTesterInScritpingDefineSymbolsGroup(UnityEditor.EditorUserBuildSettings.selectedBuildTargetGroup); UnityEditor.EditorApplication.isPlaying = true; }
private static void IosBuildFromCommandLine() { try { string versionNumber = DateTime.Now.ToString("yyMMddHHss"); PlayerSettings.companyName = "Altom"; PlayerSettings.productName = "sampleGame"; PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, "fi.altom.altunitytester"); PlayerSettings.bundleVersion = versionNumber; PlayerSettings.iOS.appleEnableAutomaticSigning = true; PlayerSettings.iOS.appleDeveloperTeamID = "59ESG8ELF5"; Debug.Log("Starting IOS build..." + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.locationPathName = "sampleGame"; buildPlayerOptions.scenes = new string[] { "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 1 AltUnityDriverTestScene.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 2 Draggable Panel.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 3 Drag And Drop.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 4 No Cameras.unity" }; buildPlayerOptions.target = BuildTarget.iOS; buildPlayerOptions.options = BuildOptions.Development; AltUnityBuilder.AddAltUnityTesterInScritpingDefineSymbolsGroup(BuildTargetGroup.Android); AltUnityBuilder.InsertAltUnityInScene(buildPlayerOptions.scenes[0]); var results = BuildPipeline.BuildPlayer(buildPlayerOptions); #if UNITY_2017 if (results.Equals("")) { Debug.Log("No Build Errors"); } else { Debug.LogError("Build Error!"); } EditorApplication.Exit(1); #else if (results.summary.totalErrors == 0) { Debug.Log("No Build Errors"); } else { Debug.LogError("Build Error!"); EditorApplication.Exit(1); } #endif Debug.Log("Finished. " + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion); // EditorApplication.Exit(0); } catch (Exception exception) { Debug.Log(exception); EditorApplication.Exit(1); } }
static void AndroidBuildFromCommandLine() { try { string versionNumber = DateTime.Now.ToString("yyMMddHHss"); PlayerSettings.companyName = "Altom"; PlayerSettings.productName = "sampleGame"; PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, "fi.altom.altunitytester"); PlayerSettings.bundleVersion = versionNumber; PlayerSettings.Android.bundleVersionCode = int.Parse(versionNumber); PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel23; #if UNITY_2018_1_OR_NEWER PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARMv7; #endif Debug.Log("Starting Android build..." + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions(); buildPlayerOptions.scenes = new string[] { "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 1 AltUnityDriverTestScene.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 2 Draggable Panel.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 3 Drag And Drop.unity", "Assets/AltUnityTester-BindingsAndExamples(can_be_deleted)/Scenes/Scene 4 No Cameras.unity" }; buildPlayerOptions.locationPathName = "sampleGame.apk"; buildPlayerOptions.target = BuildTarget.Android; buildPlayerOptions.options = BuildOptions.Development | BuildOptions.AutoRunPlayer; AltUnityBuilder.AddAltUnityTesterInScritpingDefineSymbolsGroup(BuildTargetGroup.Android); AltUnityBuilder.InsertAltUnityInScene(buildPlayerOptions.scenes[0]); var results = BuildPipeline.BuildPlayer(buildPlayerOptions); AltUnityBuilder.RemoveAltUnityTesterFromScriptingDefineSymbols(BuildTargetGroup.Android); #if UNITY_2017 if (results.Equals("")) { Debug.Log("No Build Errors"); } else { Debug.LogError("Build Error!"); } EditorApplication.Exit(1); #else if (results.summary.totalErrors == 0) { Debug.Log("No Build Errors"); } else { Debug.LogError("Build Error! " + results.steps + "\n Result: " + results.summary.result + "\n Stripping info: " + results.strippingInfo); EditorApplication.Exit(1); } #endif Debug.Log("Finished. " + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion); // EditorApplication.Exit(0); } catch (Exception exception) { Debug.LogException(exception); // EditorApplication.Exit(1); } }
private void AfterExitPlayMode() { RemoveAltUnityRunnerPrefab(); AltUnityBuilder.RemoveAltUnityTesterFromScriptingDefineSymbols(UnityEditor.EditorUserBuildSettings.selectedBuildTargetGroup); EditorConfiguration.ranInEditor = false; }
private void DrawGUI() { var screenWidth = UnityEditor.EditorGUIUtility.currentViewWidth; //----------------------Left Panel------------ UnityEditor.EditorGUILayout.BeginHorizontal(); var leftSide = (screenWidth / 3) * 2; _scrollPosition = UnityEditor.EditorGUILayout.BeginScrollView(_scrollPosition, false, false, UnityEngine.GUILayout.MinWidth(leftSide)); DisplayTestGui(EditorConfiguration.MyTests); UnityEditor.EditorGUILayout.Separator(); DisplayBuildSettings(); UnityEditor.EditorGUILayout.Separator(); DisplayAltUnityServerSettings(); UnityEditor.EditorGUILayout.Separator(); DisplayPortForwarding(); UnityEditor.EditorGUILayout.EndScrollView(); //-------------------Right Panel-------------- var rightSide = (screenWidth / 3); UnityEditor.EditorGUILayout.BeginVertical(); UnityEditor.EditorGUILayout.LabelField("Platform", UnityEditor.EditorStyles.boldLabel); UnityEditor.EditorGUILayout.BeginHorizontal(); EditorConfiguration.platform = (Platform)UnityEngine.GUILayout.SelectionGrid((int)EditorConfiguration.platform, System.Enum.GetNames(typeof(Platform)), System.Enum.GetNames(typeof(Platform)).Length, UnityEditor.EditorStyles.radioButton); UnityEditor.EditorGUILayout.EndHorizontal(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.LabelField("Tests", UnityEditor.EditorStyles.boldLabel); if (UnityEngine.GUILayout.Button("Run All Tests")) { if (EditorConfiguration.platform == Platform.Editor) { System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunAllTest)); testThread.Start(); } else { AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunAllTest); } } if (UnityEngine.GUILayout.Button("Run Selected Tests")) { if (EditorConfiguration.platform == Platform.Editor) { System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunSelectedTest)); testThread.Start(); } else { AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunSelectedTest); } } if (UnityEngine.GUILayout.Button("Run Failed Tests")) { if (EditorConfiguration.platform == Platform.Editor) { System.Threading.Thread testThread = new System.Threading.Thread(() => AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunFailedTest)); testThread.Start(); } else { AltUnityTestRunner.RunTests(AltUnityTestRunner.TestRunMode.RunFailedTest); } } UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); if (AltUnityBuilder.built) { var found = false; UnityEngine.SceneManagement.Scene scene = UnityEditor.SceneManagement.EditorSceneManager.OpenScene(AltUnityBuilder.GetFirstSceneWhichWillBeBuilt()); if (scene.path.Equals(AltUnityBuilder.GetFirstSceneWhichWillBeBuilt())) { if (scene.GetRootGameObjects() .Any(gameObject => gameObject.name.Equals("AltUnityRunnerPrefab"))) { UnityEngine.SceneManagement.SceneManager.SetActiveScene(scene); var altunityRunner = scene.GetRootGameObjects() .First(a => a.name.Equals("AltUnityRunnerPrefab")); DestroyAltUnityRunner(altunityRunner); found = true; } if (found == false) { AltUnityBuilder.built = false; } } } UnityEditor.EditorGUILayout.LabelField("Build", UnityEditor.EditorStyles.boldLabel); if (EditorConfiguration.platform != Platform.Editor) { if (UnityEngine.GUILayout.Button("Build Only")) { if (EditorConfiguration.platform == Platform.Android) { AltUnityBuilder.BuildAndroidFromUI(autoRun: false); } #if UNITY_EDITOR_OSX else if (EditorConfiguration.platform == Platform.iOS) { AltUnityBuilder.BuildiOSFromUI(autoRun: false); } #endif else { RunInEditor(); } } } else { UnityEditor.EditorGUI.BeginDisabledGroup(true); UnityEngine.GUILayout.Button("Build Only"); UnityEditor.EditorGUI.EndDisabledGroup(); } UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.LabelField("Run", UnityEditor.EditorStyles.boldLabel); if (UnityEngine.GUILayout.Button("Play in Editor")) { EditorConfiguration.platform = Platform.Editor; RunInEditor(); } if (EditorConfiguration.platform != Platform.Editor) { if (UnityEngine.GUILayout.Button("Build & Run on Device")) { if (EditorConfiguration.platform == Platform.Android) { AltUnityBuilder.BuildAndroidFromUI(autoRun: true); } #if UNITY_EDITOR_OSX else if (EditorConfiguration.platform == Platform.iOS) { AltUnityBuilder.BuildiOSFromUI(autoRun: true); } #endif } } else { UnityEditor.EditorGUI.BeginDisabledGroup(true); UnityEngine.GUILayout.Button("Build & Run on Device"); UnityEditor.EditorGUI.EndDisabledGroup(); } UnityEditor.EditorGUILayout.LabelField("", UnityEngine.GUILayout.ExpandHeight(true)); //Status test _scrollPositonTestResult = UnityEditor.EditorGUILayout.BeginScrollView(_scrollPositonTestResult, UnityEngine.GUI.skin.textArea); if (selectedTest != -1) { UnityEditor.EditorGUILayout.LabelField("Test Result for: " + EditorConfiguration.MyTests[selectedTest].TestName, UnityEditor.EditorStyles.boldLabel); UnityEditor.EditorGUILayout.Separator(); UnityEditor.EditorGUILayout.LabelField("Message:"); if (EditorConfiguration.MyTests[selectedTest].TestResultMessage == null) { UnityEngine.GUILayout.TextArea("No informartion about this test available.\nPlease rerun the test.", UnityEngine.GUILayout.MaxHeight(75)); } else { string text = EditorConfiguration.MyTests[selectedTest].TestResultMessage; int lineContor = 1; int textLength = (int)rightSide / 7; if (text.Length > textLength) { var splited = text.Split(' '); text = ""; foreach (var word in splited) { text = text + " " + word; if (text.Length > textLength * lineContor) { lineContor++; text = text + "\n"; } } } UnityEditor.EditorGUILayout.TextArea(text); } } else { UnityEditor.EditorGUILayout.LabelField("No test selected"); } UnityEditor.EditorGUILayout.EndScrollView(); UnityEditor.EditorGUILayout.EndVertical(); UnityEditor.EditorGUILayout.EndHorizontal(); }