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