Ejemplo n.º 1
0
        public void DrawLeftTop()
        {
            using (new EditorGUILayout.HorizontalScope(EditorStyles.toolbar))
            {
                using (var check1 = new EditorGUIBeginChangeCheckScope())
                {
                    GUILayout.Toggle(_isPlaying, EditorIconGUIContent.GetSystem(EditorIconGUIContentType.PlayButton),
                                     EditorStyles.toolbarButton);            //Play
                    if (check1.IsChanged)
                    {
                        SwitchPlay();
                    }
                }


                using (var check3 = new EditorGUIBeginChangeCheckScope())
                {
                    GUILayout.Toggle(AnimationMode.InAnimationMode(),
                                     EditorIconGUIContent.GetSystem(EditorIconGUIContentType.Animation_Record),
                                     EditorStyles.toolbarButton);            //Animate
                    if (check3.IsChanged)
                    {
                        if (AnimationMode.InAnimationMode())
                        {
                            AnimationMode.StopAnimationMode();
                        }
                        else
                        {
                            AnimationMode.StartAnimationMode();
                        }
                    }
                }

                using (new EditorGUIUtilityLabelWidthScope(30))
                {
                    _frameCountPerSecond =
                        EditorGUILayout.IntField("FPS", _frameCountPerSecond, GUILayout.Width(30 + 25));
                    if (_frameCountPerSecond <= 1)
                    {
                        _frameCountPerSecond = 1;
                    }
                }

                using (new EditorGUIUtilityLabelWidthScope(70))
                {
                    _playSpeed = EditorGUILayout.FloatField("play_speed", _playSpeed, GUILayout.Width(70 + 25));
                    if (_playSpeed <= 0)
                    {
                        _playSpeed = 1;
                    }
                }

                GUILayout.FlexibleSpace();
            }
        }
        void OnGUI()
        {
            using (new GUILayoutBeginScrollViewScope(ref scrollPosition))
            {
                //鼠标放在按钮上的样式
                foreach (var mouseCursor in EnumUtil.GetValues <MouseCursor>())
                {
                    var displayValue = string.Format("{0}.{1}", typeof(MouseCursor).GetLastName(),
                                                     mouseCursor.ToString());
                    if (GUILayout.Button(displayValue))
                    {
                        this.ShowNotificationAndLog(displayValue);
                    }
                    EditorGUIUtility.AddCursorRect(GUILayoutUtility.GetLastRect(), mouseCursor);
                    GUILayout.Space(10);
                }

                //内置图标
                int columnCount = 20;
                using (new GUILayoutBeginHorizontalScope())
                {
                    for (int i = 0; i < EnumUtil.GetCount <EditorIconGUIContentType>(); ++i)
                    {
                        if (i > 0 && i % columnCount == 0)
                        {
                            GUILayout.EndHorizontal();
                            GUILayout.BeginHorizontal();
                        }

                        var guiContent = EditorIconGUIContent.GetSystem((EditorIconGUIContentType)i);
                        if (GUILayout.Button(guiContent,
                                             GUILayout.Width(50), GUILayout.Height(36)))
                        {
                            string displayValue = string.Format("EditorIconGUIContentType.{0}\n{1}",
                                                                EnumUtil.GetName <EditorIconGUIContentType>(i),
                                                                EditorIconGUIContentConst.IconGUIContentNames[i]
                                                                );
                            this.ShowNotificationAndLog(displayValue);
                        }
                    }
                }
            }
        }