private void Build() { SettingsUtils.CopyProjectSettingsToProfile(); EditorSceneManager.OpenScene(_scenePath, OpenSceneMode.Single); switch (_selectedPlatform) { case BuildPlatform.Current: AppBuilder.BuildCurrentPlatform(); break; case BuildPlatform.GearVR: AppBuilder.BuildLimapp(BuildTarget.Android, AppBuildInfo.BuildTargetDevices.GearVR, _compressionType); break; case BuildPlatform.Standalone: AppBuilder.BuildLimapp(BuildTarget.StandaloneWindows, AppBuildInfo.BuildTargetDevices.Emulator, _compressionType); break; } }
public override void Draw(BuildWindowConfig config) { EditorGUILayout.BeginVertical("Box"); { EditorGUIHelper.DrawTitle("Build Limapp"); EditorGUILayout.LabelField("This process will build a limapp file that will run on the Liminal Platform"); EditorGUILayout.TextArea("", GUI.skin.horizontalSlider); DrawSceneSelector(ref _scenePath, "Target Scene", config); config.TargetScene = _scenePath; EditorGUILayout.Space(); _selectedPlatform = config.SelectedPlatform; _selectedPlatform = (BuildPlatform)EditorGUILayout.EnumPopup("Select Platform", _selectedPlatform); config.SelectedPlatform = _selectedPlatform; _compressionType = config.CompressionType; _compressionType = (ECompressionType)EditorGUILayout.EnumPopup("Compression Format", _compressionType); config.CompressionType = _compressionType; if (_compressionType == ECompressionType.Uncompressed) { EditorGUILayout.LabelField("Uncompressed limapps are not valid for release.", EditorStyles.boldLabel); } GUILayout.Space(EditorGUIUtility.singleLineHeight); EditorGUILayout.LabelField("Additional References"); EditorGUI.indentLevel++; var toRemove = new List <string>(); foreach (var reference in config.AdditionalReferences) { GUILayout.BeginHorizontal(); { EditorGUILayout.LabelField(reference); if (GUILayout.Button("X")) { toRemove.Add(reference); } } GUILayout.EndHorizontal(); } foreach (var reference in toRemove) { config.AdditionalReferences.Remove(reference); } GUILayout.BeginHorizontal(); { _referenceInput = EditorGUILayout.TextField("Reference: ", _referenceInput); if (GUILayout.Button("+")) { if (string.IsNullOrEmpty(_referenceInput)) { return; } if (config.DefaultAdditionalReferences.Contains(_referenceInput)) { Debug.Log($"The default references already included {_referenceInput}"); return; } var refAsm = Assembly.Load(_referenceInput); if (refAsm == null) { Debug.LogError($"Assembly: {_referenceInput} does not exist."); return; } if (!config.AdditionalReferences.Contains(_referenceInput)) { config.AdditionalReferences.Add(_referenceInput); } _referenceInput = ""; } } GUILayout.EndHorizontal(); EditorGUI.indentLevel--; GUILayout.FlexibleSpace(); GUI.enabled = !_scenePath.Equals(string.Empty); if (GUILayout.Button("Build")) { EditorSceneManager.OpenScene(_scenePath, OpenSceneMode.Single); switch (_selectedPlatform) { case BuildPlatform.Current: AppBuilder.BuildCurrentPlatform(); break; case BuildPlatform.GearVR: AppBuilder.BuildLimapp(BuildTarget.Android, AppBuildInfo.BuildTargetDevices.GearVR, _compressionType); break; case BuildPlatform.Standalone: AppBuilder.BuildLimapp(BuildTarget.StandaloneWindows, AppBuildInfo.BuildTargetDevices.Emulator, _compressionType); break; } } EditorGUILayout.EndVertical(); } }