示例#1
0
 public static void initItem(IDevkitHierarchyItem item)
 {
     if (item.instanceID == 0u)
     {
         item.instanceID = LevelHierarchy.generateUniqueInstanceID();
     }
 }
示例#2
0
        public virtual void read(IFormattedFileReader reader)
        {
            if (reader.containsKey("Available_Instance_ID"))
            {
                LevelHierarchy.availableInstanceID = reader.readValue <uint>("Available_Instance_ID");
            }
            else
            {
                LevelHierarchy.availableInstanceID = 1u;
            }
            int num = reader.readArrayLength("Items");

            for (int i = 0; i < num; i++)
            {
                IFormattedFileReader formattedFileReader = reader.readObject(i);
                Type type = formattedFileReader.readValue <Type>("Type");
                if (type == null)
                {
                    Debug.LogError(string.Concat(new object[]
                    {
                        "Level hierarchy item index ",
                        i,
                        " missing type: ",
                        formattedFileReader.readValue("Type")
                    }));
                }
                else
                {
                    IDevkitHierarchyItem devkitHierarchyItem;
                    if (typeof(MonoBehaviour).IsAssignableFrom(type))
                    {
                        devkitHierarchyItem = (new GameObject
                        {
                            name = type.Name
                        }.AddComponent(type) as IDevkitHierarchyItem);
                    }
                    else
                    {
                        devkitHierarchyItem = (Activator.CreateInstance(type) as IDevkitHierarchyItem);
                    }
                    if (devkitHierarchyItem != null)
                    {
                        if (formattedFileReader.containsKey("Instance_ID"))
                        {
                            devkitHierarchyItem.instanceID = formattedFileReader.readValue <uint>("Instance_ID");
                        }
                        if (devkitHierarchyItem.instanceID == 0u)
                        {
                            devkitHierarchyItem.instanceID = LevelHierarchy.generateUniqueInstanceID();
                        }
                        formattedFileReader.readKey("Item");
                        devkitHierarchyItem.read(formattedFileReader);
                    }
                }
            }
        }