示例#1
0
    void DrawTopBar()
    {
        top_bar_rect.width = position.width;
        GUI.Box(top_bar_rect, "", EditorStyles.toolbar);

        Rect padded_rect = new Rect(top_bar_rect);

        padded_rect.width = 200;
        padded_rect.x    += 10;

        GUILayout.BeginArea(padded_rect);
        GUILayout.BeginHorizontal();

        if (GUILayout.Toggle(side_panel_view == SidePanelView.state, "State Info", EditorStyles.toolbarButton))
        {
            side_panel_view = SidePanelView.state;
        }
        GUILayout.Space(4);
        if (GUILayout.Toggle(side_panel_view == SidePanelView.parameters, "Parameters", EditorStyles.toolbarButton))
        {
            side_panel_view = SidePanelView.parameters;
        }
        GUILayout.Space(4);

        GUILayout.EndHorizontal();
        GUILayout.EndArea();
    }
示例#2
0
    void Init()
    {
        side_panel_view = SidePanelView.state;

        top_bar_rect      = new Rect(0, 0, position.width, 18);
        info_panel_rect   = new Rect(0, top_bar_rect.height - 1, 400, position.height - top_bar_rect.height);
        states_panel_rect = new Rect(info_panel_rect.width, top_bar_rect.height, position.width - info_panel_rect.width, position.height - top_bar_rect.height);

        scroll_view_position         = Vector2.zero;
        scroll_view_background_color = new Color(0.25f, 0.25f, 0.25f, 1);

        view_rect = new Rect(0, 0, 2000, 2000);

        state_size     = new Vector2(200, 40);
        state_position = new Vector2(10, 10);
        next_id        = 1;

        focused_state_id = -1;

        temp_name = "";

        state_height_list = new List <State>();
        states            = new Dictionary <int, State>();

        transition_list = new ReorderableList(new List <Transition>(), typeof(Transition), true, true, false, true);

        transition_list.drawHeaderCallback           += (list) => DrawReorderableListHeader(list, "Transitions");
        transition_list.drawElementCallback          += DrawReorderableTransitionElement;
        transition_list.onReorderCallbackWithDetails += (list, index_1, index_2) => state_machine.ReorderTransition(states[focused_state_id], index_1, index_2);
        transition_list.onRemoveCallback             += (list) => state_machine.DeleteTransition(list.GetCurrent <Transition>());

        condition_list = new ReorderableList(new List <Condition>(), typeof(Condition), true, true, true, true);

        condition_list.drawHeaderCallback           += (list) => DrawReorderableListHeader(list, "Conditions");
        condition_list.drawElementCallback          += DrawReorderableConditionElement;
        condition_list.onRemoveCallback             += RemoveConditionFromFocused;
        condition_list.onAddCallback                += AddConditionToFocused;
        condition_list.onReorderCallbackWithDetails += ReorderConditionInFocused;

        parameter_list = new ReorderableList(new List <Parameter>(), typeof(Parameter), true, true, true, true);
        parameter_list.drawHeaderCallback           += (list) => DrawReorderableListHeader(list, "Parameters");
        parameter_list.drawElementCallback          += DrawReorderableParamteterElement;
        parameter_list.onRemoveCallback             += (list) => state_machine.DeleteParameter(list.GetCurrent <Parameter>().name);
        parameter_list.onAddCallback                += (list) => state_machine.AddParameter("New Parameter");
        parameter_list.onSelectCallback             += SelectReorderableParameter;
        parameter_list.drawElementCallback          += ReorderableParameterElementCallback;
        parameter_list.onReorderCallbackWithDetails += (list, index_1, index_2) => state_machine.MoveParameter(index_1, index_2);

        last_selected_parameter = edit_parameter = -1;

        grid_right_click_menu = new GenericMenu();
        grid_right_click_menu.AddItem(new GUIContent("Create State"), false, () => CreateNewState("State " + next_id));
    }