public override void DrawLabel(GUIStyle style)
                {
                    EventGoToState evnt = (EventGoToState)GetEditableObject();

                    GUIContent labelContent = new GUIContent(kLabelText);
                    Vector2    labelSize    = style.CalcSize(labelContent);
                    Rect       labelRect    = new Rect(0, 1, labelSize.x, labelSize.y);

                    GUI.Label(labelRect, labelContent, style);

                    GUIContent buttonContent = new GUIContent(evnt._state.GetStateName());
                    Vector2    buttonSize    = style.CalcSize(buttonContent) + kButtonPadding;

                    Rect buttonRect = new Rect(labelSize.x, 1, buttonSize.x, buttonSize.y);

                    if (GUI.Button(buttonRect, evnt._state.GetStateName()))
                    {
                        StateMachineEditor stateMachineEditor = GetTimelineEditor().GetParent() as StateMachineEditor;

                        if (stateMachineEditor != null)
                        {
                            stateMachineEditor.ShowStateDetails(evnt._state.GetStateID());
                        }
                    }
                }
                public override Vector2 GetLabelSize(GUIStyle style)
                {
                    EventGoToState evnt = (EventGoToState)GetEditableObject();

                    GUIContent labelContent = new GUIContent(kLabelText);
                    Vector2    labelSize    = style.CalcSize(labelContent);

                    GUIContent buttonContent = new GUIContent(evnt._state.GetStateName());
                    Vector2    buttonSize    = style.CalcSize(buttonContent) + kButtonPadding + kButtonBorder;

                    return(new Vector2(labelSize.x + buttonSize.x, buttonSize.y));
                }
Пример #3
0
                public override bool RenderObjectProperties(GUIContent label)
                {
                    EventGoToState evnt = GetEditableObject() as EventGoToState;

                    bool dataChanged;

                    evnt._stateType = SerializedObjectEditorGUILayout.ObjectField(evnt._stateType, "State Type", out dataChanged);

                    switch (evnt._stateType)
                    {
                    case EventGoToState.eStateType.Timeline:
                        dataChanged |= evnt._state.RenderObjectProperties(new GUIContent("State"));
                        break;

                    case EventGoToState.eStateType.Coroutine:
                        dataChanged |= evnt._coroutine.RenderObjectProperties(new GUIContent("State"));
                        break;
                    }

                    return(dataChanged);
                }