Example #1
0
        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());
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
 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);
     }
 }
Example #5
0
        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);
            }
        }
Example #6
0
 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);
     }
 }
Example #7
0
        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);
            }
        }
Example #8
0
 public SmartEditor(System.Type type, ITypeGUI selfTypeGUI)
 {
     baseType         = type;
     this.selfTypeGUI = selfTypeGUI;
 }
Example #9
0
 public ArrayTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) : base(listType, elementType, element)
 {
 }
Example #10
0
 public ListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element) : base(listType, elementType, element)
 {
     ctor_info = listType.GetConstructor(new System.Type[] { });
 }
Example #11
0
 public IListTypeEditor(System.Type listType, System.Type elementType, ITypeGUI element)
 {
     this.listType    = listType;
     this.element     = element;
     this.elementType = elementType;
 }