示例#1
0
            public Context(SerializedProperty property)
            {
                fsm            = property.serializedObject.targetObject as FiniteStateMachine;
                parameterNames = new List <string>();
                foreach (FsmParameter parameter in fsm.parameters)
                {
                    parameterNames.Add(parameter.name);
                }

                type = (FsmCondition.Type)property.FindPropertyRelative("_type").enumValueIndex;
            }
示例#2
0
        private static bool IsAllowedConditionType(Enum t, SerializedProperty property, Context context)
        {
            FsmParameter parameter = context.fsm.GetParameter(property.FindPropertyRelative("_parameterName").stringValue);

            FsmCondition.Type type = (FsmCondition.Type)t;

            switch (parameter.type)
            {
            case FsmParameter.Type.BOOLEAN:
                return(type == FsmCondition.Type.TRIGGER || type == FsmCondition.Type.EQUALS);

            case FsmParameter.Type.INTEGER:
            case FsmParameter.Type.FLOAT:
                return(type == FsmCondition.Type.EQUALS || type == FsmCondition.Type.GREATER_THAN || type == FsmCondition.Type.SMALLER_THAN);

            default:
                throw new NotSupportedException("Parameter type unknown: " + parameter.type);
            }
        }