/// <summary>
        /// Draws the ios settings.
        /// </summary>
        public void DrawSetting(SerializedObject serializedObject)
        {
            var settings = serializedObject.FindProperty("iosSettings");

            using (new EditorGUIEx.GroupScope("iOS Settings"))
            {
                // XCode Project.
                EditorGUILayout.LabelField("XCode Project", EditorStyles.boldLabel);
                EditorGUI.indentLevel++;
                {
                    EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("languages"), s_AvailableLanguages, true);
                    EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("frameworks"), s_AvailableFrameworks, true);
                    EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("services"), s_AvailableServices, true);
                    EditorGUIEx.FilePathField(settings.FindPropertyRelative("entitlementsFile"), "Select entitlement file.", "", "entitlements");
                }
                EditorGUI.indentLevel--;

                // Signing.
                EditorGUILayout.LabelField("Signing", EditorStyles.boldLabel);
                var 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--;


                // exportOptions.plist.
                EditorGUILayout.LabelField("exportOptions.plist Setting", EditorStyles.boldLabel);
                EditorGUI.indentLevel++;
                {
                    var spGenerate = settings.FindPropertyRelative("generateExportOptionPlist");
                    EditorGUILayout.PropertyField(spGenerate, new GUIContent("Generate Automatically"));
                    if (spGenerate.boolValue)
                    {
                        EditorGUIEx.TextFieldWithTemplate(settings.FindPropertyRelative("exportMethod"), s_AvailableExportMethods, false);
                        EditorGUILayout.PropertyField(settings.FindPropertyRelative("uploadBitcode"));
                        EditorGUILayout.PropertyField(settings.FindPropertyRelative("uploadSymbols"));
                    }
                }
                EditorGUI.indentLevel--;
            }
        }
Exemple #2
0
        /// <summary>
        /// Draws the ios settings.
        /// </summary>
        public void DrawSetting(SerializedObject serializedObject)
        {
            var 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--;
            }
        }
Exemple #3
0
        void Initialize()
        {
            if (styleCommand != null)
            {
                return;
            }

            styleTitle              = new GUIStyle("IN BigTitle");
            styleTitle.alignment    = TextAnchor.UpperLeft;
            styleTitle.fontSize     = 12;
            styleTitle.stretchWidth = true;
            styleTitle.margin       = new RectOffset();

            styleSymbols          = new GUIStyle(EditorStyles.textArea);
            styleSymbols.wordWrap = true;

            styleCommand = new GUIStyle(EditorStyles.textArea);
            styleCommand.stretchWidth = false;
            styleCommand.fontSize     = 9;
            contentOpen = new GUIContent(EditorGUIUtility.FindTexture("project"));

            // Find end property in ProjectBuilder.
            var dummy = ScriptableObject.CreateInstance <ProjectBuilder>();
            var sp    = new SerializedObject(dummy).GetIterator();

            sp.Next(true);
            while (sp.Next(false))
            {
                s_EndBasePropertyName = sp.name;
            }


            // Scene list.
            roSceneList = new ReorderableList(new List <ProjectBuilder.SceneSetting>(), typeof(ProjectBuilder.SceneSetting));
            roSceneList.drawElementCallback += (rect, index, isActive, isFocused) =>
            {
                var 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, s_AvailableScenes, false);
            };
            roSceneList.headerHeight  = 0;
            roSceneList.elementHeight = 18;


            // Exclude Directories List
            roExcludeDirectoriesList = new ReorderableList(new List <string>(), typeof(string));
            roExcludeDirectoriesList.drawElementCallback += (rect, index, isActive, isFocused) =>
            {
                var element = roExcludeDirectoriesList.serializedProperty.GetArrayElementAtIndex(index);
                EditorGUIEx.DirectoryPathField(rect, element, GUIContent.none, "Selcet exclude directory in build.");
            };
            roExcludeDirectoriesList.headerHeight  = 0;
            roExcludeDirectoriesList.elementHeight = 18;


            // Builder list.
            roBuilderList = new ReorderableList(s_BuildersInProject, typeof(ProjectBuilder));
            roBuilderList.onSelectCallback = (list) => Selection.activeObject = list.list[list.index] as ProjectBuilder;
            roBuilderList.onAddCallback   += (list) =>
            {
                EditorApplication.delayCall += () =>
                {
                    Util.CreateBuilderAsset();
                    OnSelectionChanged();
                };
            };
            roBuilderList.onRemoveCallback += (list) =>
            {
                EditorApplication.delayCall += () =>
                {
                    AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(list.list[list.index] as ProjectBuilder));
                    AssetDatabase.Refresh();
                    OnSelectionChanged();
                };
            };
            roBuilderList.drawElementCallback += (rect, index, isActive, isFocused) =>
            {
                var b = roBuilderList.list[index] as ProjectBuilder;                    //オブジェクト取得.
                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(string.Format("{0} ({1})", b.name, b.productName)));
            };
            roBuilderList.headerHeight = 0;
            roBuilderList.draggable    = false;

            contentTitle = new GUIContent(Util.GetAssets <Texture2D>(typeof(ProjectBuilder).Name + " Icon").FirstOrDefault());
            DestroyImmediate(dummy);
        }