/// <summary>
 /// 初始化绘制此GraphView需要用到的GUIStyle
 /// </summary>
 private void InitGUIStyles(ref bool result)
 {
     if (!result)
     {
         EditorGUIStyleHelper.SetGUIStylePadding(nameof(EditorStyles.toolbarButton), new RectOffset(15, 15, 0, 0));
         result = true;
     }
 }
Exemplo n.º 2
0
        protected override void AddButtons()
        {
            AddButton(new GUIContent("", m_CreateNewToggleIcon, "新建Graph资产"), () =>
            {
                GenericMenu genericMenu = new GenericMenu();
                foreach (var graphType in TypeCache.GetTypesDerivedFrom <BaseGraph>())
                {
                    genericMenu.AddItem(new GUIContent($"{graphType.Name}"), false,
                                        data =>
                    {
                        BaseGraph baseGraph = GraphCreateAndSaveHelper.CreateGraph(data as System.Type);
                        GraphAssetCallbacks.InitializeGraph(baseGraph);
                    }, graphType);
                }

                genericMenu.ShowAsContext();
            }, true);

            //AddSeparator(5);

            AddToggle(new GUIContent("", m_ExposedParamsToggleIcon, "开/关参数面板"),
                      graphView.GetPinnedElementStatus <ExposedParameterView>() != DropdownMenuAction.Status.Hidden,
                      (v) => graphView.ToggleView <ExposedParameterView>());

            //AddSeparator(5);

            AddToggle(new GUIContent("", m_MiniMapToggleIcon, "开/关小地图"), m_MiniMap.visible,
                      (v) => m_MiniMap.visible = v);

            //AddSeparator(5);

            AddToggle(new GUIContent(m_ConditionalToggleIcon, "开/关运行的面板"),
                      graphView.GetPinnedElementStatus <ConditionalProcessorView>() !=
                      DropdownMenuAction.Status.Hidden, (v) => graphView.ToggleView <ConditionalProcessorView>());

            AddButton(new GUIContent("", m_GotoFileButtonIcon, "定位至资产文件"),
                      () =>
            {
                EditorGUIUtility.PingObject(graphView.graph);
                Selection.activeObject = graphView.graph;
            });

            AddSeparator(5);

            AddCustom(() =>
            {
                GUI.color = new Color(128 / 255f, 128 / 255f, 128 / 255f);
                GUILayout.Label(m_BaseGraph.GetType().Name,
                                EditorGUIStyleHelper.GetGUIStyleByName(nameof(EditorStyles.toolbarButton)));
                GUI.color = Color.white;
            });

            AddButton(new GUIContent("Reload", "主动重载界面"),
                      () => { (this.m_BaseGraphView as UniversalGraphView)?.universalGraphWindow.RefreshWindow(); }, false);
        }