void DrawTransition(Transition.Data tr)
    {
        EditorGUIDrawUtility.DrawHorizontalLine();
        var transitionRequest = TransitionRequest.Factory.BuildRequest(tr.ReqeustType);

        var info = transitionRequest.GetInfo();

        if (info != null)
        {
            EditorGUILayout.LabelField("Transitioning On:", info.DisplayName);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Cause:", new GUIStyle("BoldLabel"));

            var detailedLabelStyle = new GUIStyle("Label");
            detailedLabelStyle.wordWrap = true;

            EditorGUILayout.LabelField(new GUIContent(info.Type.ToString(), info.DetailedCause), detailedLabelStyle);

            EditorGUILayout.EndHorizontal();
        }
        else
        {
            EditorGUILayout.LabelField("Transitioning On:", tr.ReqeustType);
        }
        EditorGUILayout.LabelField("Next State ID: ", $"{tr.NextState}");
        EditorGUIDrawUtility.DrawHorizontalLine();
    }
Exemplo n.º 2
0
        /** Decodes data transitions. */
        private static Transition.Data decodeDTr( string encStates, string encDTr, State.Single[] states, int s, Transition.Data next, Datatype[] datatypes )
        {
            int start = encStates[ s*sizeOfState+3 ];
            int end = (s!=states.Length-1)?encStates[ (s+1)*sizeOfState+3 ]:encDTr.Length;

            for( int i=end-sizeOfDTr; i>=start; i-=sizeOfDTr ) {
                next = new Transition.Data(
                    datatypes[ encDTr[ i+2 ] ],
                    states[encDTr[i+0]],
                    states[encDTr[i+1]],
                    next );
            }

            return next;
        }