static void Init() { emptyTypeGUI = new EmptyTypeGUI(); unityObjectGUI = new ObjectType(); BaseTypes.Add(typeof(int).FullName, new IntType()); BaseTypes.Add(typeof(uint).FullName, new UIntType()); BaseTypes.Add(typeof(sbyte).FullName, new sByteType()); BaseTypes.Add(typeof(byte).FullName, new ByteType()); BaseTypes.Add(typeof(char).FullName, new CharType()); BaseTypes.Add(typeof(short).FullName, new ShortType()); BaseTypes.Add(typeof(ushort).FullName, new UShortType()); BaseTypes.Add(typeof(long).FullName, new LongType()); BaseTypes.Add(typeof(ulong).FullName, new ULongType()); BaseTypes.Add(typeof(float).FullName, new FloatType()); BaseTypes.Add(typeof(double).FullName, new DoubleType()); BaseTypes.Add(typeof(string).FullName, new StrType()); BaseTypes.Add(typeof(bool).FullName, new BoolType()); BaseTypes.Add(typeof(UnityEngine.Vector2).FullName, new Vector2Type()); BaseTypes.Add(typeof(UnityEngine.Vector3).FullName, new Vector3Type()); BaseTypes.Add(typeof(UnityEngine.Vector4).FullName, new Vector4Type()); BaseTypes.Add(typeof(UnityEngine.Vector2Int).FullName, new Vector2IntType()); BaseTypes.Add(typeof(UnityEngine.Vector3Int).FullName, new Vector3IntType()); }
public static ITypeGUI Get(System.Type type, FieldInfo fieldInfo) { ITypeGUI typeGUI = null; if (BaseTypes.TryGetValue(type.FullName, out typeGUI)) { return(typeGUI); } if (fieldInfo == null) { if (AllTypes.TryGetValue(type, out typeGUI)) { return(typeGUI); } typeGUI = GetTypeGUI(type, null); AllTypes.Add(type, typeGUI); return(typeGUI); } else { if (FieldInfoTypes.TryGetValue(fieldInfo, out typeGUI)) { return(typeGUI); } typeGUI = GetTypeGUI(type, fieldInfo); FieldInfoTypes.Add(fieldInfo, typeGUI); return(typeGUI); } }
public static ITypeGUI Get(System.Type type, FieldInfo fieldInfo) { ITypeGUI typeGUI = null; if (BaseTypes.TryGetValue(type.FullName, out typeGUI)) { return(typeGUI); } if (AllTypes.TryGetValue(type, out typeGUI)) { return(typeGUI); } if (IL.Help.isType(type, typeof(UnityEngine.Object))) { return(AllTypes[typeof(UnityEngine.Object)]); } if (type.IsArray) { var elementType = type.GetElementType(); var arrayGUI = new ArrayTypeEditor(type, elementType, Get(elementType, null)); AllTypes.Add(type, arrayGUI); return(arrayGUI); } else if (IL.Help.isListType(type)) { var elementType = IL.Help.GetElementByList(fieldInfo); var arrayGUI = new ListTypeEditor(type, elementType, Get(elementType, null)); AllTypes.Add(type, arrayGUI); return(arrayGUI); } #if USE_HOT if (type is ILRuntimeType && (type.Name.EndsWith("[]"))) { return(new EmptyTypeGUI()); } #endif if (!type.IsSerializable #if USE_HOT && (type.GetType() != typeof(ILRuntimeType) && !((ILRuntimeType)type).ILType.TypeDefinition.IsSerializable) #endif ) { return(new EmptyTypeGUI()); } List <FieldInfo> fieldinfos = IL.Help.GetSerializeField(type); var gui = new AnyType(type, fieldinfos); AllTypes.Add(type, gui); return(gui); }
public ListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) : base(listType, elementType, element) { ctor_info = listType.GetConstructor(new System.Type[] { }); if (elementType.IsClass) { elementTypeDefaultValue = null; } else { elementTypeDefaultValue = elementType.Assembly.CreateInstance(elementType.FullName); } }
public IListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) { this.listType = listType; this.element = element; this.elementType = elementType; if (elementType.IsClass) { elementTypeDefaultValue = null; } else { elementTypeDefaultValue = elementType.Assembly.CreateInstance(elementType.FullName); } }
public SmartEditor(System.Type type, ITypeGUI selfTypeGUI) { baseType = type; this.selfTypeGUI = selfTypeGUI; { allTypes = IL.Help.GetBaseType(baseType.FullName); for (int i = allTypes.Count - 1; i >= 0; --i) { var at = allTypes[i]; if (at.IsAbstract || !at.IsSerializable) { allTypes.RemoveAt(i); } } allTypes.Insert(0, null); } }
public static ITypeGUI Get(System.Type type, FieldInfo fieldInfo) { ITypeGUI typeGUI = null; if (fieldInfo == null) { if (BaseTypes.TryGetValue(type.FullName, out typeGUI)) { return(typeGUI); } if (AllTypes.TryGetValue(type, out typeGUI)) { return(typeGUI); } typeGUI = GetTypeGUI(type, null); AllTypes.Add(type, typeGUI); return(typeGUI); } else { if (FieldInfoTypes.TryGetValue(fieldInfo, out typeGUI)) { return(typeGUI); } var ha = fieldInfo.GetCustomAttributes(typeof(UnityEngine.HideInInspector), false); if (ha != null && ha.Length != 0) { typeGUI = emptyTypeGUI; } else if (!BaseTypes.TryGetValue(type.FullName, out typeGUI)) { typeGUI = GetTypeGUI(type, fieldInfo); } FieldInfoTypes.Add(fieldInfo, typeGUI); return(typeGUI); } }
public SmartEditor(System.Type type, ITypeGUI selfTypeGUI) { baseType = type; this.selfTypeGUI = selfTypeGUI; }
public ArrayTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) : base(listType, elementType, element) { }
public ListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) : base(listType, elementType, element) { ctor_info = listType.GetConstructor(new System.Type[] { }); }
public IListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) { this.listType = listType; this.element = element; this.elementType = elementType; }