private static ArgTypeMeta GetTypeMeta(ArguementSerializeType serializeType) { ArgTypeMeta result = null; _serializeTypeToMeta.TryGetValue(serializeType, out result); return(result); }
public SerializableArguement(System.Type type) { if (type.IsSubclassOf(typeof(UnityEngine.Object))) { _serializeType = ArguementSerializeType.Object; _string = type.AssemblyQualifiedName; } else if (type.IsEnum) { _serializeType = ArguementSerializeType.Enum; _string = type.AssemblyQualifiedName; } else { if (_typeToSerializeType.ContainsKey(type)) { _serializeType = _typeToSerializeType[type]; ArgTypeMeta argTypeMeta = GetTypeMeta(_serializeType); object defaultValue = null; if (type.IsValueType) { defaultValue = System.Activator.CreateInstance(type); } argTypeMeta.onAssignValue(this, defaultValue); } else { throw new System.NotImplementedException("unsupport type:" + type); } } }
private void AssertSerializeType(ArguementSerializeType type) { if (_serializeType != type) { throw new System.InvalidOperationException($"This operation is only valid when ArguementSerializeType is {type}, current is {_serializeType}"); } }
public SerializableArguement(bool value) { _serializeType = ArguementSerializeType.Bool; this.boolValue = value; }
public SerializableArguement(float value) { _serializeType = ArguementSerializeType.Float; this.floatValue = value; }
public SerializableArguement(int value) { _serializeType = ArguementSerializeType.Int; this.intValue = value; }
public SerializableArguement(string str) { _serializeType = ArguementSerializeType.String; _string = str; }