private SerializedType ReadSerializedType(bool isRefType) { var type = new SerializedType(); type.classID = reader.ReadInt32(); if (header.m_Version >= SerializedFileFormatVersion.kRefactoredClassId) { type.m_IsStrippedType = reader.ReadBoolean(); } if (header.m_Version >= SerializedFileFormatVersion.kRefactorTypeData) { type.m_ScriptTypeIndex = reader.ReadInt16(); } if (header.m_Version >= SerializedFileFormatVersion.kHasTypeTreeHashes) { if (isRefType && type.m_ScriptTypeIndex >= 0) { type.m_ScriptID = reader.ReadBytes(16); } else if ((header.m_Version < SerializedFileFormatVersion.kRefactoredClassId && type.classID < 0) || (header.m_Version >= SerializedFileFormatVersion.kRefactoredClassId && type.classID == 114)) { type.m_ScriptID = reader.ReadBytes(16); } type.m_OldTypeHash = reader.ReadBytes(16); } if (m_EnableTypeTree) { type.m_Type = new TypeTree(); type.m_Type.m_Nodes = new List <TypeTreeNode>(); if (header.m_Version >= SerializedFileFormatVersion.kUnknown_12 || header.m_Version == SerializedFileFormatVersion.kUnknown_10) { TypeTreeBlobRead(type.m_Type); } else { ReadTypeTree(type.m_Type); } if (header.m_Version >= SerializedFileFormatVersion.kStoresTypeDependencies) { if (isRefType) { type.m_KlassName = reader.ReadStringToNull(); type.m_NameSpace = reader.ReadStringToNull(); type.m_AsmName = reader.ReadStringToNull(); } else { type.m_TypeDependencies = reader.ReadInt32Array(); } } } return(type); }
private SerializedType ReadSerializedType() { var type = new SerializedType(); type.classID = reader.ReadInt32(); if (header.m_Version >= 16) { type.m_IsStrippedType = reader.ReadBoolean(); } if (header.m_Version >= 17) { type.m_ScriptTypeIndex = reader.ReadInt16(); } if (header.m_Version >= 13) { if ((header.m_Version < 16 && type.classID < 0) || (header.m_Version >= 16 && type.classID == 114)) { type.m_ScriptID = reader.ReadBytes(16); //Hash128 } type.m_OldTypeHash = reader.ReadBytes(16); //Hash128 } if (m_EnableTypeTree) { var typeTree = new List <TypeTreeNode>(); if (header.m_Version >= 12 || header.m_Version == 10) { TypeTreeBlobRead(typeTree); } else { ReadTypeTree(typeTree); } if (header.m_Version >= 21) { var count = reader.ReadInt32(); if (count > 0) { reader.Position += 4 * count; } } type.m_Nodes = typeTree; } return(type); }
public ObjectReader(EndianBinaryReader reader, SerializedFile assetsFile, ObjectInfo objectInfo) : base(reader.BaseStream, reader.endian) { this.assetsFile = assetsFile; m_PathID = objectInfo.m_PathID; byteStart = objectInfo.byteStart; byteSize = objectInfo.byteSize; if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID)) { type = (ClassIDType)objectInfo.classID; } else { type = ClassIDType.UnknownType; } serializedType = objectInfo.serializedType; platform = assetsFile.m_TargetPlatform; m_Version = assetsFile.header.m_Version; }
public Object(ObjectReader reader) { this.reader = reader; reader.Reset(); assetsFile = reader.assetsFile; type = reader.type; m_PathID = reader.m_PathID; version = reader.version; buildType = reader.buildType; platform = reader.platform; serializedType = reader.serializedType; byteSize = reader.byteSize; if (platform == BuildTarget.NoTarget) { var m_ObjectHideFlags = reader.ReadUInt32(); } }
public AssetPreloadData(AssetsFile assetsFile, ObjectInfo objectInfo, string uniqueID) { sourceFile = assetsFile; m_PathID = objectInfo.m_PathID; Offset = objectInfo.byteStart; Size = objectInfo.byteSize; FullSize = objectInfo.byteSize; serializedType = objectInfo.serializedType; if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID)) { Type = (ClassIDType)objectInfo.classID; TypeString = Type.ToString(); } else { Type = ClassIDType.UnknownType; TypeString = $"UnknownType {objectInfo.classID}"; } this.uniqueID = uniqueID; }
public ObjectReader(EndianBinaryReader reader, SerializedFile assetsFile, ObjectInfo objectInfo) : base(reader.BaseStream, reader.endian) { this.assetsFile = assetsFile; m_PathID = objectInfo.m_PathID; byteStart = objectInfo.byteStart; byteSize = objectInfo.byteSize; if (Enum.IsDefined(typeof(ClassIDType), objectInfo.classID)) { type = (ClassIDType)objectInfo.classID; //Logger.Info(String.Format("object type {0} ({1})", type, objectInfo.classID)); } else { Logger.Error(String.Format("unknown type {0}", objectInfo.classID)); type = ClassIDType.UnknownType; } serializedType = objectInfo.serializedType; platform = assetsFile.m_TargetPlatform; m_Version = assetsFile.header.m_Version; }