Пример #1
0
 public MethodSignature( string name, string paramName, MethodParameterType type, Type parameterType = null )
 {
     this.name = name;
     this.paramName = paramName;
     this.type = type;
     this.parameterType = parameterType;
 }
Пример #2
0
        public object GetParameterValue(MethodParameterType type)
        {
            switch (type)
            {
            case MethodParameterType.Bool:
                return(boolParam);

            case MethodParameterType.Int:
                return(intParam);

            case MethodParameterType.Float:
                return(floatParam);

            case MethodParameterType.String:
                return(stringParam);

            case MethodParameterType.Enum:
                return(enumParam.enumObject);

            case MethodParameterType.UnityObject:
                return(objectParam);

            case MethodParameterType.Color:
                return(colorParam);

            default:
                return(null);
            }
        }
Пример #3
0
        public static MethodParameters GetMethodParamaters(List <string> inputIds, MethodParameterType type)
        {
            MethodParameters paramCollection = new MethodParameters();

            if (inputIds.Count == 0)
            {
                return(paramCollection);
            }
            foreach (var param in inputIds)
            {
                paramCollection.Create(CreateParameter(param, SoType.Text, false, type));
            }
            return(paramCollection);
        }
Пример #4
0
 public MethodParameter(UrlPart urlPart, MethodParameterType type, Term term)
 {
     UrlPart = urlPart;
     Type    = type;
     Term    = term;
 }
Пример #5
0
 public MethodParameterInfo([NotNull] Type parameterType, string name, MethodParameterType methodParameterType) : base(parameterType, name)
 {
     MethodParameterType = methodParameterType;
 }
Пример #6
0
        public static MethodParameter CreateParameter(string name, SoType soType, bool isRequired, MethodParameterType type)
        {
            MethodParameter methodParam = new MethodParameter
            {
                Name       = name,
                IsRequired = isRequired,
                MetaData   = new MetaData
                {
                    Description = type.ToString(),
                    DisplayName = name
                },
                SoType = soType,
                Type   = MapHelper.GetTypeBySoType(soType)
            };

            return(methodParam);
        }
Пример #7
0
        public void InitializeFromMethodInfo( MethodInfo method )
        {
            ParameterInfo[] parameters = method.GetParameters();
            if( parameters.Length == 0 )
            {
                methodName = method.Name;
                type = MethodParameterType.None;
            } else if( parameters.Length == 1 ){
                switch( parameters[0].ParameterType.Name )
                {
                    case "String":
                        methodName = method.Name;
                        type = MethodParameterType.String;
                    break;

                    case "Int32":
                        methodName = method.Name;
                        type = MethodParameterType.Int;
                    break;

                    case "Boolean":
                        methodName = method.Name;
                        type = MethodParameterType.Boolean;
                    break;

                    case "Single":
                        methodName = method.Name;
                        type = MethodParameterType.Float;
                    break;
                }

                if( parameters[0].ParameterType.IsSubclassOf( typeof(Component) ) ||
                    parameters[0].ParameterType.IsSubclassOf( typeof(GameObject) ))
                {
                    methodName = method.Name;
                    type = MethodParameterType.Object;
                    fullyQualifiedTypeName = parameters[0].ParameterType.AssemblyQualifiedName;
                }
            }
        }
        public static void DrawMethodParameterPassing(Rect rect, SerializedProperty property, GUIContent label, System.Type parameterType)
        {
            float switchButtonWidth = rect.height;
            Rect  rectContent       = new Rect(rect.x, rect.y, rect.width - switchButtonWidth, rect.height);
            Rect  rectButton        = new Rect(rect.x + rectContent.width, rect.y, switchButtonWidth, rect.height);
            SerializedProperty passingNameProperty = property.FindPropertyRelative("passingName");

            if (property.isExpanded)
            {
                passingNameProperty.stringValue = null;
                const float typeWidth = 60.0f;
                rectContent.width -= typeWidth;
                Rect rectType = new Rect(rectContent.x + rectContent.width - typeWidth * 0.5f, rectContent.y, typeWidth + typeWidth * 0.5f, rectContent.height);
                SerializedProperty parameterTypeProperty = property.FindPropertyRelative("parameterType");

                MethodParameterType parameterEnumType = (MethodParameterType)parameterTypeProperty.enumValueIndex;
                SerializedProperty  parameterProperty = property.FindPropertyRelative("parameter");
                if (parameterEnumType == MethodParameterType.Bool && parameterType.IsAssignableFrom(MethodParameter.BoolType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("boolParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else if (parameterEnumType == MethodParameterType.Int && parameterType.IsAssignableFrom(MethodParameter.IntType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("intParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else if (parameterEnumType == MethodParameterType.Float && parameterType.IsAssignableFrom(MethodParameter.FloatType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("floatParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else if (parameterEnumType == MethodParameterType.String && parameterType.IsAssignableFrom(MethodParameter.StringType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("stringParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else if (parameterEnumType == MethodParameterType.Enum && parameterType.IsAssignableFrom(MethodParameter.EnumType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("enumParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else if (parameterEnumType == MethodParameterType.UnityObject && MethodParameter.UnityObjectType.IsAssignableFrom(parameterType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("objectParam");
                    EditorGUI.ObjectField(rectContent, paramChildProperty, parameterType, label);
                }
                else if (parameterEnumType == MethodParameterType.Color && parameterType.IsAssignableFrom(MethodParameter.ColorType))
                {
                    SerializedProperty paramChildProperty = parameterProperty.FindPropertyRelative("colorParam");
                    EditorGUI.PropertyField(rectContent, paramChildProperty, label);
                }
                else
                {
                    rectContent = EditorGUI.PrefixLabel(rectContent, label);
                    EditorGUI.HelpBox(rectContent, "Unkonwn Parameter Type", MessageType.Warning);
                }

                EditorGUI.PropertyField(rectType, parameterTypeProperty, GUIContent.none);
            }
            else
            {
                DrawPropertyBindingName(rectContent, passingNameProperty, label, parameterType);
            }
            property.isExpanded = EditorGUI.Toggle(rectButton, property.isExpanded, EditorStyles.radioButton);
        }