Ejemplo n.º 1
0
 public void Read(SerializedFileReader reader, RTTIClassHierarchyDescriptor heirarchy)
 {
     if (IsReadLongID(reader.Generation))
     {
         reader.AlignStream(AlignType.Align4);
         PathID = reader.ReadInt64();
     }
     else
     {
         PathID = reader.ReadInt32();
     }
     Offset = reader.ReadUInt32();
     Size   = reader.ReadInt32();
     if (IsReadTypeIndex(reader.Generation))
     {
         int TypeIndex = reader.ReadInt32();
         RTTIBaseClassDescriptor type = heirarchy.Types[TypeIndex];
         TypeID   = type.ClassID == ClassIDType.MonoBehaviour ? (-type.ScriptID - 1) : (int)type.ClassID;
         ClassID  = type.ClassID;
         ScriptID = type.ScriptID;
     }
     else
     {
         TypeID   = reader.ReadInt32();
         ClassID  = (ClassIDType)reader.ReadInt16();
         ScriptID = reader.ReadInt16();
     }
     if (IsReadUnknown(reader.Generation))
     {
         IsStripped = reader.ReadBoolean();
     }
 }
 public static void CombineFormats(FileGeneration generation, ref RTTIBaseClassDescriptor origin)
 {
     if (origin.Tree != null)
     {
         TypeTreeConverter.CombineFormats(generation, origin.Tree);
     }
 }
 public static void CombineFormats(FileGeneration generation, SerializedFileMetadata origin)
 {
     RTTIClassHierarchyDescriptorConverter.CombineFormats(generation, ref origin.Hierarchy);
     if (AssetEntry.HasTypeIndex(generation))
     {
         for (int i = 0; i < origin.Entries.Length; i++)
         {
             ref AssetEntry entry             = ref origin.Entries[i];
             ref RTTIBaseClassDescriptor type = ref origin.Hierarchy.Types[entry.TypeIndex];
             entry.TypeID   = type.ClassID == ClassIDType.MonoBehaviour ? (-type.ScriptID - 1) : (int)type.ClassID;
             entry.ClassID  = type.ClassID;
             entry.ScriptID = type.ScriptID;
         }