public void DrawSetting(SerializedObject serializedObject) { SerializedProperty settings = serializedObject.FindProperty("iosSettings"); using (new EditorGUIEx.GroupScope("iOS Settings")) { EditorGUILayout.LabelField("XCode Project", EditorStyles.boldLabel); EditorGUI.indentLevel++; { EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("languages"), availableLanguages, true); EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("frameworks"), availableFrameworks, true); EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("services"), availableServices, true); EditorGUIEx.FilePathField(settings.FindPropertyRelative("entitlementsFile"), "Select entitlement file.", "", "entitlements"); } EditorGUI.indentLevel--; EditorGUILayout.LabelField("Signing", EditorStyles.boldLabel); SerializedProperty spAutomaticallySign = settings.FindPropertyRelative("automaticallySign"); EditorGUI.indentLevel++; { EditorGUILayout.PropertyField(spAutomaticallySign); EditorGUILayout.PropertyField(settings.FindPropertyRelative("developerTeamId")); if (!spAutomaticallySign.boolValue) { EditorGUILayout.PropertyField(settings.FindPropertyRelative("codeSignIdentity")); EditorGUILayout.PropertyField(settings.FindPropertyRelative("profileId")); EditorGUILayout.PropertyField(settings.FindPropertyRelative("profileSpecifier")); } } EditorGUI.indentLevel--; EditorGUILayout.LabelField("exportOptions.plist Setting", EditorStyles.boldLabel); EditorGUI.indentLevel++; { SerializedProperty spGenerate = settings.FindPropertyRelative("generateExportOptionPlist"); EditorGUILayout.PropertyField(spGenerate, new GUIContent("Generate Automatically")); if (spGenerate.boolValue) { EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("exportMethod"), availableExportMethods, false); EditorGUILayout.PropertyField(settings.FindPropertyRelative("uploadBitcode")); EditorGUILayout.PropertyField(settings.FindPropertyRelative("uploadSymbols")); } } EditorGUI.indentLevel--; } }
public void DrawSetting(SerializedObject serializedObject) { SerializedProperty settings = serializedObject.FindProperty("androidSettings"); using (new EditorGUIEx.GroupScope("Android Settings")) { EditorGUILayout.LabelField("Keystore", EditorStyles.boldLabel); EditorGUI.indentLevel++; { EditorGUIEx.FilePathField(settings.FindPropertyRelative("keystoreFile"), "Select keystore file.", "", ""); EditorGUILayout.PropertyField(settings.FindPropertyRelative("keystorePassword")); EditorGUILayout.PropertyField(settings.FindPropertyRelative("keystoreAliasName"), new GUIContent("Alias")); EditorGUILayout.PropertyField(settings.FindPropertyRelative("keystoreAliasPassword"), new GUIContent("Alias Password")); } EditorGUI.indentLevel--; } }
private void Initialize() { if (styleCommand != null) { return; } styleTitle = new GUIStyle("IN BigTitle") { alignment = TextAnchor.UpperLeft, fontSize = 12, stretchWidth = true, margin = new RectOffset() }; styleCommand = new GUIStyle(EditorStyles.textArea) { stretchWidth = false, fontSize = 9 }; contentOpen = new GUIContent(EditorGUIUtility.FindTexture("project")); Builder dummy = CreateInstance <Builder>(); SerializedProperty sp = new SerializedObject(dummy).GetIterator(); sp.Next(true); while (sp.Next(false)) { endBasePropertyName = sp.name; } roSceneList = new ReorderableList(new List <Builder.SceneSetting>(), typeof(Builder.SceneSetting)); roSceneList.drawElementCallback += (rect, index, isActive, isFocused) => { SerializedProperty element = roSceneList.serializedProperty.GetArrayElementAtIndex(index); EditorGUI.PropertyField(new Rect(rect.x, rect.y, 16, rect.height - 2), element.FindPropertyRelative("enable"), GUIContent.none); EditorGUIEx.TextFieldWithTemplate(new Rect(rect.x + 16, rect.y, rect.width - 16, rect.height - 2), element.FindPropertyRelative("name"), GUIContent.none, availableScenes, false); }; roSceneList.headerHeight = 0; roSceneList.elementHeight = 18; roExcludeDirectoriesList = new ReorderableList(new List <string>(), typeof(string)); roExcludeDirectoriesList.drawElementCallback += (rect, index, isActive, isFocused) => { SerializedProperty element = roExcludeDirectoriesList.serializedProperty.GetArrayElementAtIndex(index); EditorGUIEx.DirectoryPathField(rect, element, GUIContent.none, "Select exclude directory in build."); }; roExcludeDirectoriesList.headerHeight = 0; roExcludeDirectoriesList.elementHeight = 18; roBuilderList = new ReorderableList(buildersInProject, typeof(Builder)) { onSelectCallback = list => Selection.activeObject = list.list[list.index] as Builder }; roBuilderList.onAddCallback += list => { EditorApplication.delayCall += () => { BuilderUtil.CreateBuilderAsset(); OnSelectionChanged(); }; }; roBuilderList.onRemoveCallback += list => { EditorApplication.delayCall += () => { AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(list.list[list.index] as Builder)); AssetDatabase.Refresh(); OnSelectionChanged(); }; }; roBuilderList.drawElementCallback += (rect, index, isActive, isFocused) => { Builder b = roBuilderList.list[index] as Builder; if (!b) { return; } GUI.DrawTexture(new Rect(rect.x, rect.y + 2, 16, 16), GetBuildTargetIcon(b)); GUI.Label(new Rect(rect.x + 16, rect.y + 2, rect.width - 16, rect.height - 2), new GUIContent($"{b.name} ({b.productName})")); }; roBuilderList.headerHeight = 0; roBuilderList.draggable = false; contentTitle = new GUIContent(Util.GetAssets <Texture2D>(typeof(Builder).Name + " Icon").FirstOrDefault()); DestroyImmediate(dummy); }