public static void BuildKnownTypeList() { KnownType.InsertKnownType ( new KnownType <string>("string") { Getter = parameter => parameter._string, Setter = (parameter, value) => { parameter._string = value; } } ); KnownType.InsertKnownType ( new KnownType <bool>("bool") { Getter = parameter => parameter._floats[0] > 0, Setter = (parameter, value) => { parameter._floats[0] = value ? 1 : -1; } } ); KnownType.InsertKnownType ( new KnownType <int>("int") { Getter = parameter => Mathf.RoundToInt(parameter._floats[0]), Setter = (parameter, value) => { parameter._floats[0] = value; } } ); KnownType.InsertKnownType ( new KnownType <float>("float") { Getter = parameter => parameter._floats[0], Setter = (parameter, value) => { parameter._floats[0] = value; } } ); KnownType.InsertKnownType ( new KnownType <AnimationCurve>("Animation Curve") { Getter = parameter => parameter._curve, Setter = (parameter, curve) => { parameter._curve = curve; } } ); KnownType.InsertKnownType ( new KnownType <RuntimeAnimatorController>("Animator Controller") { Getter = parameter => parameter._object as RuntimeAnimatorController, Setter = (parameter, controller) => { parameter._object = controller; } } ); KnownType.InsertKnownType ( new KnownType <Color>("Color") { Getter = parameter => new Color(parameter._floats[0], parameter._floats[1], parameter._floats[2], parameter._floats[3]), Setter = (parameter, color) => { parameter._floats[0] = color.r; parameter._floats[1] = color.g; parameter._floats[2] = color.b; parameter._floats[3] = color.a; } } ); KnownType.InsertKnownType ( new KnownType <Vector2>("Vector2") { Getter = parameter => new Vector2(parameter._floats[0], parameter._floats[1]), Setter = (parameter, vector2) => { parameter._floats[0] = vector2.x; parameter._floats[1] = vector2.y; } } ); KnownType.InsertKnownType ( new KnownType <Vector3>("Vector3") { Getter = parameter => new Vector3(parameter._floats[0], parameter._floats[1], parameter._floats[2]), Setter = (parameter, vector3) => { parameter._floats[0] = vector3.x; parameter._floats[1] = vector3.y; parameter._floats[2] = vector3.z; } } ); KnownType.InsertKnownType ( new KnownType <GameObject>("GameObject") { Getter = parameter => parameter._object as GameObject, Setter = (parameter, value) => { parameter._object = value; } } ); KnownType.InsertKnownType ( new KnownType <SerializedType>("System.Type") { Getter = parameter => new SerializedType(parameter._string), Setter = (parameter, type) => { parameter._string = type.SerializedTypeName; } } ); KnownType.InsertKnownType ( new KnownType <DerivedType>("Derivatives of System.Type") { Getter = parameter => new DerivedType(parameter._string), Setter = (parameter, type) => { parameter._string = type.ToString(); } } ); KnownType.InsertKnownType ( new KnownType <Component>("MonoBehaviour...") { Getter = parameter => parameter._object as Component, Setter = (parameter, value) => { parameter._object = value; } } ); KnownType.InsertKnownType ( new KnownType <ScriptableObject>("ScriptableObject...") { Getter = parameter => parameter._object as ScriptableObject, Setter = (parameter, value) => { parameter._object = value; } } ); }
public static void InsertKnownType <T>(KnownType <T> info) { _knownTypes[typeof(T).FullName] = info; }