Example #1
0
 private void ShowToolbar()
 {
     using (Horizontal.Do(EditorStyles.toolbar))
     {
         OnToolbarGUI();
     }
 }
Example #2
0
        public override void OnInspectorGUI(UMakeBuildActionEditor editor)
        {
            base.OnInspectorGUI(editor);

            using (BoxGroup.Do("Shared Settings"))
            {
                using (Horizontal.Do())
                {
                    steamSdkPath.Value = EditorGUILayout.TextField("Steam SDK Folder", steamSdkPath.Value);
                    if (GUILayout.Button("Change", GUILayout.Width(64.0f)))
                    {
                        string path = EditorUtility.OpenFolderPanel("Steam SDK Folder Path", steamSdkPath.Value, "");
                        if (!string.IsNullOrEmpty(path))
                        {
                            steamSdkPath.Value = path;
                        }
                    }
                }

                steamUsername.Value = EditorGUILayout.TextField("Steam Username", steamUsername.Value);
                steamPassword.Value = EditorGUILayout.PasswordField("Steam Password", steamPassword.Value);
            }

            GUILayout.FlexibleSpace();
        }
Example #3
0
        public override void OnInspectorGUI()
        {
            using (Horizontal.Do())
            {
                EditorGUI.BeginChangeCheck();
                string buildPath = EditorGUILayout.TextField("Build Path", UMake.BuildPathPref);
                if (EditorGUI.EndChangeCheck())
                {
                    UMake.BuildPathPref = buildPath;
                }

                if (string.IsNullOrEmpty(buildPath))
                {
                    Rect position = GUILayoutUtility.GetLastRect().Right(-EditorGUIUtility.labelWidth);
                    EditorGUI.LabelField(position, "Pick folder on build.", EditorStyles.centeredGreyMiniLabel);
                }

                if (GUILayout.Button("Change", GUILayout.Width(64.0f)))
                {
                    string path = EditorUtility.OpenFolderPanel("Build Path", UMake.BuildPathPref, "Builds");
                    if (!string.IsNullOrEmpty(path))
                    {
                        UMake.BuildPathPref = path;
                    }
                }
            }

            base.OnInspectorGUI();
        }
Example #4
0
        public override void OnInspectorGUI()
        {
            var referencesObjectBase = target as ReferencesObjectBase;

            string referenceCountLabel = string.Format("{0} references of <{1}>", referencesObjectBase.ReferenceCount, referencesObjectBase.ReferencedType.Name);

            EditorGUILayout.LabelField(referenceCountLabel, EditorStyles.centeredGreyMiniLabel);

            using (Horizontal.Do())
            {
                using (LabelWidth.Do(72.0f))
                {
                    SerializedProperty rootFolderProperty = serializedObject.GetMemberProperty <ReferencesBase>(r => r.rootFolder);
                    EditorGUILayout.PropertyField(rootFolderProperty);
                }

                if (GUILayout.Button("Update References", EditorStyles.miniButton, GUILayout.Width(108.0f)))
                {
                    referencesObjectBase.UpdateReferences();
                    serializedObject.ApplyModifiedProperties();
                }
            }

            if (referencesObjectBase.ContainsNullReference)
            {
                Rect warningRect = GUILayoutUtility.GetRect(GUIContent.none, EditorStyles.label);

                GUI.Box(warningRect, GUIContent.none);
                var style = new GUIStyle(EditorStyles.centeredGreyMiniLabel);
                style.normal.textColor = Color.red;
                GUI.Label(warningRect, "Null references found! Please, update the references.", style);
            }
        }
Example #5
0
        /// <summary>
        /// Draws a delayed search field like those of Project window.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public static string DelayedSearchField(string search)
        {
            using (Horizontal.Do())
            {
                search = EditorGUILayout.DelayedTextField(search, Styles.SearchTextField);

                var buttonStyle = string.IsNullOrEmpty(search) ?
                                  EditorHelper.Styles.SearchCancelButtonEmpty :
                                  EditorHelper.Styles.SearchCancelButton;

                if (GUILayout.Button(GUIContent.none, buttonStyle))
                {
                    search = "";
                }
            }

            return(search);
        }
Example #6
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            TryInitList();

            var targetRendererProperty = serializedObject.GetMemberProperty <TweenShader>(t => t.targetRenderer);
            var durationProperty       = serializedObject.GetMemberProperty <TweenShader>(t => t.duration);

            EditorGUILayout.PropertyField(targetRendererProperty);
            EditorGUILayout.PropertyField(durationProperty);

            shaderProperiesList.DoLayoutList();
            serializedObject.ApplyModifiedProperties();

            var tweenShader = target as TweenShader;

            EditorGUILayout.Space();

            using (Horizontal.Do())
            {
                if (GUILayout.Button("Play Forward", EditorStyles.miniButtonLeft))
                {
                    InitTween(tweenShader);
                    tweenShader.PlayForward();
                    UpdateTween(tweenShader);
                }

                if (GUILayout.Button("Play Backward", EditorStyles.miniButtonMid))
                {
                    InitTween(tweenShader);
                    tweenShader.PlayBackward();
                    UpdateTween(tweenShader);
                }

                if (GUILayout.Button("Clear", EditorStyles.miniButtonRight))
                {
                    InitTween(tweenShader);
                    tweenShader.Clear();
                    SceneView.RepaintAll();
                }
            }
        }
Example #7
0
        /// <summary>
        /// Draws a search field like those of Project window.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public static string SearchField(string search)
        {
            using (Horizontal.Do())
            {
                search = EditorGUILayout.TextField(search, Styles.SearchTextField);

                GUIStyle buttonStyle = Styles.SearchCancelButtonEmpty;
                if (!string.IsNullOrEmpty(search))
                {
                    buttonStyle = Styles.SearchCancelButton;
                }

                if (GUILayout.Button(GUIContent.none, buttonStyle))
                {
                    search = "";
                }
            }

            return(search);
        }
Example #8
0
        public void OnPreferencesGUI()
        {
            unfolded = EditorGUILayout.Foldout(unfolded, new GUIContent(propertyName));
            if (!unfolded)
            {
                return;
            }
            templateCode.Value = EditorGUILayout.TextArea(templateCode.Value);

            using (Horizontal.Do())
            {
                if (GUILayout.Button("Load from file"))
                {
                    string filePath = EditorUtility.OpenFilePanelWithFilters("Load script template file for " + propertyName, ScriptTemplatePreferences.ScriptTemplateDefaultPath.Value, new[] { "FileType", "txt,cs" });
                    if (!filePath.Equals(string.Empty))
                    {
                        ScriptTemplatePreferences.SaveDefaultPathFromFilePath(filePath);
                        templateCode.Value = File.ReadAllText(filePath);
                        UpdateLineEnding();
                    }
                }

                if (GUILayout.Button("Save to file"))
                {
                    string filePath = EditorUtility.SaveFilePanel("Save script template", ScriptTemplatePreferences.ScriptTemplateDefaultPath.Value, propertyName + "Template", "txt");
                    if (!filePath.Equals(string.Empty))
                    {
                        ScriptTemplatePreferences.SaveDefaultPathFromFilePath(filePath);
                        UpdateLineEnding();
                        WriteToFile(templateCode.Value, filePath);
                        AssetDatabase.Refresh();
                    }
                }

                if (GUILayout.Button("Reset"))
                {
                    GUI.FocusControl(null);
                    templateCode.DeleteKey();
                }
            }
        }
Example #9
0
        /// <summary>
        /// This is a debug method that draws all Unity icons
        /// together with its name, so you can later use them.
        /// </summary>
        public static void DrawAllIcons()
        {
            if (unityIcons == null)
            {
                unityIcons = Resources.FindObjectsOfTypeAll <Texture>();
                System.Array.Sort(unityIcons, ObjectNameComparer.Instance);
            }

            searchField = SearchField(searchField);

            string searchLower = searchField.ToLower(CultureInfo.InvariantCulture);

            EditorGUILayout.Space();

            using (ScrollView.Do(ref scroll))
            {
                foreach (Texture texture in unityIcons)
                {
                    if (texture == null || texture.name == "")
                    {
                        continue;
                    }

                    if (!AssetDatabase.GetAssetPath(texture).StartsWith("Library/"))
                    {
                        continue;
                    }

                    if (string.IsNullOrEmpty(searchField) ||
                        texture.name.ToLower(CultureInfo.InvariantCulture).Contains(searchLower))
                    {
                        using (Horizontal.Do())
                        {
                            EditorGUILayout.TextField(texture.name, EditorStyles.label);
                            GUILayout.Label(new GUIContent(texture));
                        }
                    }
                }
            }
        }
        private BuildAction ShowActions()
        {
            BuildAction action;

            using (Horizontal.Do())
            {
                action = BuildAction.None;

                if (GUILayout.Button("Open Folder", EditorStyles.miniButton))
                {
                    action = BuildAction.OpenFolder;
                }

                GUILayout.FlexibleSpace();

                GUILayout.Label("Execute", EditorStyles.centeredGreyMiniLabel);
                GUI.enabled = CanBuild;

                if (GUILayout.Button("Pre Actions", EditorStyles.miniButtonLeft))
                {
                    action = BuildAction.PreActions;
                }

                if (GUILayout.Button("Build", EditorStyles.miniButtonMid, GUILayout.Width(64.0f)))
                {
                    action = BuildAction.Build;
                }

                if (GUILayout.Button("Post Actions", EditorStyles.miniButtonRight))
                {
                    action = BuildAction.PostActions;
                }

                GUI.enabled = true;
            }

            return(action);
        }
        /// <summary>
        /// Draw the graph given a host EditorWindow at a Rect position.
        /// </summary>
        /// <param name="host"></param>
        /// <param name="position"></param>
        public void OnGUI(EditorWindow host, Rect position)
        {
            if (graph == null || graphGUI == null)
            {
                Initialize();
            }

            if (graphNeedsUpdate)
            {
                UpdateGraphImmediate();
            }

            using (Horizontal.Do(EditorStyles.toolbar))
            {
                OnToolbarGUI();
            }

            float toolbarHeight = EditorGUIUtility.singleLineHeight + 1.0f;

            graphGUI.BeginGraphGUI(host, new Rect(0, toolbarHeight, position.width, position.height - toolbarHeight));
            graphGUI.OnGraphGUI();
            graphGUI.EndGraphGUI();
        }
Example #12
0
        /// <summary>
        /// This is a debug method that draws all Unity styles found in GUI.skin.customStyles
        /// together with its name, so you can later use some specific style.
        /// </summary>
        public static void DrawAllStyles()
        {
            searchField = SearchField(searchField);

            string searchLower = searchField.ToLower(CultureInfo.InvariantCulture);

            EditorGUILayout.Space();

            using (ScrollView.Do(ref scroll))
            {
                foreach (GUIStyle style in GUI.skin.customStyles)
                {
                    if (string.IsNullOrEmpty(searchField) ||
                        style.name.ToLower(CultureInfo.InvariantCulture).Contains(searchLower))
                    {
                        using (Horizontal.Do())
                        {
                            EditorGUILayout.TextField(style.name, EditorStyles.label);
                            GUILayout.Label(style.name, style);
                        }
                    }
                }
            }
        }