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)); }
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); }