public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        if (!skin)
        {
            skin = Resources.Load("skin") as GUISkin;
        }
        if (!stateManager)
        {
            stateManager = (GameStateGraph)EditorTool.GetAssetOfType(typeof(GameStateGraph), ".asset");
            if (!stateManager)
            {
                if (EditorUtility.DisplayDialog("配置游戏状态管理器", "第一次需要配置游戏状态管理器!", "确定", "不要取消"))
                {
                    stateManager = (GameStateGraph)this.NewAsAsset();
                }
                else
                {
                    stateManager = (GameStateGraph)this.NewAsAsset();
                }
            }
        }
        GUI.skin = skin;

        GUILayout.BeginVertical("游戏状态管理器", "window");
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.BeginVertical();

        GUILayout.Space(10);
        EditorGUILayout.HelpBox("游戏状态管理器是管理每个游戏状态的进入和离开,比如登录状态,创建角色状态等等", MessageType.Info);
        GUILayout.Space(10);
        if (GraphWindow.IsClosed() == true)
        {
            if (GUILayout.Button("打开游戏状态管理器"))
            {
                GraphWindow.OpenWindow(stateManager);
            }
        }
        else
        {
            if (GUILayout.Button("关闭游戏状态管理器"))
            {
                GraphWindow.CloseWindow();
            }
        }
        (property.serializedObject.targetObject as UnityMonoDriver).clientGameStateManager.m_oClientStateMachine.m_dicClientStates = new Dictionary <string, ClientStateBase>(GameStateGraph.stateDics);
        EditorUtility.SetDirty(property.serializedObject.targetObject);
        GUI.enabled = true;
        EditorGUILayout.EndVertical();
        EditorGUILayout.EndVertical();
    }
Пример #2
0
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        if (!skin)
        {
            skin = Resources.Load("skin") as GUISkin;
        }
        if (!uiManager)
        {
            uiManager = (UIGraph)EditorTool.GetAssetOfType(typeof(UIGraph), ".asset");
            if (!uiManager)
            {
                if (EditorUtility.DisplayDialog("配置游戏UI界面管理器", "第一次需要配置游戏UI界面管理器!", "确定", "不要取消"))
                {
                    uiManager = (UIGraph)this.NewAsAsset();
                }
                else
                {
                    uiManager = (UIGraph)this.NewAsAsset();
                }
            }
        }
        GUI.skin = skin;
        GUILayout.BeginVertical("游戏UI界面管理器", "window");
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.BeginVertical();

        GUILayout.Space(10);
        EditorGUILayout.HelpBox("游戏UI界面管理器是管理不同场景游戏界面,比如登录界面,创建角色界面等", MessageType.Info);
        GUILayout.Space(10);
        if (GraphWindow.IsClosed() == true)
        {
            if (GUILayout.Button("打开游戏UI界面管理器"))
            {
                bIsOpen = true;
                GraphWindow.OpenWindow(uiManager);
            }
        }
        else
        {
            if (GUILayout.Button("关闭游戏UI界面管理器"))
            {
                bIsOpen = false;
                GraphWindow.CloseWindow();
            }
        }
        if (bIsOpen)
        {
            GUILayout.Space(10);
            var uiType = property.FindPropertyRelative("m_eUIType");
            EditorGUILayout.PropertyField(uiType, new GUIContent("UI界面插件类型"));
            uiManager.uiPluginType = (EUIManagerType)uiType.enumValueIndex;
            GUILayout.Space(10);
        }
        (property.serializedObject.targetObject as UnityMonoDriver).uiManager.m_dicUIs = new Dictionary <string, UIBase>(UIGraph.uiDics);
        //Debug.Log("fwefewf:"+ (property.serializedObject.targetObject as UnityMonoDriver).uiManager.m_dicUIs.Count);
        EditorUtility.SetDirty(property.serializedObject.targetObject);
        GUI.enabled = true;
        EditorGUILayout.EndVertical();
        EditorGUILayout.EndVertical();
        property.serializedObject.ApplyModifiedProperties();
    }