예제 #1
0
 void initSubItem <T>(IEnumerable <Type> types, ref T subItem) where T : ReplaceItem, new()
 {
     if (subItem == null)
     {
         subItem = new T();
     }
     subItem.OnDeserialization();
     foreach (Type t in types)
     {
         typeHash[t] = subItem;
     }
 }
예제 #2
0
        void setType(Type t)
        {
            if (t != type || initializationContext.forceUpdate)
            {
                type = t;
                //Save the initial type, but check inheritance to find our editor.
                Type fieldType = type;
                if (typeof(UnityEngine.Object).IsAssignableFrom(type))
                {
                    fieldType = typeof(UnityEngine.Object);
                }
                else
                if (typeof(System.Enum).IsAssignableFrom(type))
                {
                    fieldType = typeof(System.Enum);
                }

                subItem = null;
                if (typeHash.TryGetValue(fieldType, out subItem))
                {
                    subItem.type = type;
                }
            }
        }