/// <summary> /// Test conditionals are placed here. /// </summary> /// <param name="state"></param> /// <returns>true or false depending if transition conditions are met.</returns> public override string UpdateConditionalTest(baseState state) { string strOut = null; editorCopyStateMachine theState = (editorCopyStateMachine)state; if (theState.ActionCancelled || theState.ActionConfirmed) { strOut = m_ChangeStateName; } return(strOut); }
/// <summary> /// Draws the "Display" window of this window. Everything is active. /// </summary> /// <param name="id"></param> void DrawNodeWindow(int id) { const float kTopMagin = 3; const float kSpaceBetweenLabelAndText = -15; const float kSpaceBetweenTextAndButton = 10; const float kButtonSideMagins = 30; const float kButtonCenterSpace = 80; const float kMinusSpaceLabelHack = -20; var TextStyle = new GUIStyle(); TextStyle.normal.textColor = Color.blue; TextStyle.fontSize = 12; Color backroundColor = new Color(1, 1, 1, 0.8f); Rect rect = new Rect(1, 17, WinRect.width - 2, WinRect.height - 19); EditorGUI.DrawRect(rect, backroundColor); GUILayout.Space(kTopMagin); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("This will copy the state machine", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kMinusSpaceLabelHack); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("and all its states, and state conditionals.", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kMinusSpaceLabelHack); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); GUILayout.Label("The copy name will be used in path generation.", TextStyle); GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); GUILayout.Space(kSpaceBetweenLabelAndText); m_ChangeName = EditorGUILayout.TextField("Copy Name: ", m_ChangeName); GUILayout.Space(2); m_PathName = EditorGUILayout.TextField("Path Name: ", m_PathName); GUILayout.Space(kSpaceBetweenTextAndButton); GUILayout.BeginHorizontal(""); GUILayout.Space(kButtonSideMagins); if (GUILayout.Button("Copy") && m_ChangeName.Length > 0 && m_PathName.Length > 0) { editorCopyStateMachine copyState = (editorCopyStateMachine)m_CurrentState; string directoryName = Path.GetDirectoryName(stateEditorUtils.StateList[0].PathAndFileOfClass); stateEditorUtils.CopyStateMachineAndRefactor(directoryName, m_PathName, ChangeName); copyState.ActionConfirmed = true; AssetDatabase.Refresh(); } GUILayout.Space(kButtonCenterSpace); if (GUILayout.Button("Cancel")) { editorCopyStateMachine copyState = (editorCopyStateMachine)m_CurrentState; copyState.ActionCancelled = true; } GUILayout.Space(kButtonSideMagins); GUILayout.EndHorizontal(); //GUI.DragWindow(); }