Beispiel #1
0
        /// <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();
        }