public void Load(AssetReader reader) { m_Name = reader.ReadString(); reader.Align(); m_LoadType = reader.ReadInt32(); m_Channels = reader.ReadInt32(); m_Frequency = reader.ReadInt32(); m_BitsPerSample = reader.ReadInt32(); m_Length = reader.ReadFloat(); m_IsTrackerFormat = reader.ReadBool(); reader.Align(); m_SubsoundIndex = reader.ReadInt32(); m_PreloadAudioData = reader.ReadBool(); m_LoadInBackground = reader.ReadBool(); m_Legacy3D = reader.ReadBool(); reader.Align(); m_Source = reader.ReadString(); reader.Align(); m_Offset = reader.ReadInt64(); m_Size = reader.ReadInt64(); m_CompressionFormat = reader.ReadInt32(); }
object DeserializeType(AssetReader input, TypeTree node) { object obj = null; if (node.IsArray) { int size = input.ReadInt32(); var data_field = node.Children.FirstOrDefault(n => n.Name == "data"); if (data_field != null) { if ("TypelessData" == node.Type) { obj = input.ReadBytes(size * data_field.Size); } else { obj = DeserializeArray(input, size, data_field); } } } else if (node.Size < 0) { if (node.Type == "string") { obj = input.ReadString(); if (node.Children[0].IsAligned) { input.Align(); } } else if (node.Type == "StreamingInfo") { var info = new StreamingInfo(); info.Load(input); obj = info; } else { throw new NotImplementedException("Unknown class encountered in asset deserialzation."); } } else if ("int" == node.Type) { obj = input.ReadInt32(); } else if ("unsigned int" == node.Type) { obj = input.ReadUInt32(); } else if ("bool" == node.Type) { obj = input.ReadBool(); } else { input.Position += node.Size; } if (node.IsAligned) { input.Align(); } return(obj); }
// StreamingInfo m_StreamData // uint offset // uint size // string path public void Load(AssetReader reader) { m_Name = reader.ReadString(); reader.Align(); m_Width = reader.ReadInt32(); m_Height = reader.ReadInt32(); m_CompleteImageSize = reader.ReadInt32(); m_TextureFormat = (TextureFormat)reader.ReadInt32(); m_MipCount = reader.ReadInt32(); m_IsReadable = reader.ReadBool(); m_ReadAllowed = reader.ReadBool(); reader.Align(); m_ImageCount = reader.ReadInt32(); m_TextureDimension = reader.ReadInt32(); m_FilterMode = reader.ReadInt32(); m_Aniso = reader.ReadInt32(); m_MipBias = reader.ReadInt32(); m_WrapMode = reader.ReadInt32(); m_LightFormat = reader.ReadInt32(); m_ColorSpace = reader.ReadInt32(); int length = reader.ReadInt32(); m_Data = reader.ReadBytes(length); }
public void Load(AssetReader reader, string version) { if (version != "2017.3.1f1") { Load(reader); if (0 == m_DataLength && version.StartsWith("2017.")) // "2017.2.0f3" || "2017.1.1p1" { reader.ReadInt64(); } return; } m_Name = reader.ReadString(); reader.Align(); reader.ReadInt32(); // m_ForcedFallbackFormat reader.ReadInt32(); // m_DownscaleFallback m_Width = reader.ReadInt32(); m_Height = reader.ReadInt32(); m_CompleteImageSize = reader.ReadInt32(); m_TextureFormat = (TextureFormat)reader.ReadInt32(); m_MipCount = reader.ReadInt32(); m_IsReadable = reader.ReadBool(); reader.Align(); m_ImageCount = reader.ReadInt32(); m_TextureDimension = reader.ReadInt32(); m_FilterMode = reader.ReadInt32(); m_Aniso = reader.ReadInt32(); m_MipBias = reader.ReadFloat(); m_WrapMode = reader.ReadInt32(); // m_WrapU reader.ReadInt32(); // m_WrapV reader.ReadInt32(); // m_WrapW reader.ReadInt32(); // m_LightmapFormat m_ColorSpace = reader.ReadInt32(); m_DataLength = reader.ReadInt32(); }
public void Load(AssetReader reader, UnityTypeData type) { if ("2021.1.3f1" == type.Version) // type.Hashes[28] == [0D 08 41 4C FD 5B DB 0D 22 79 20 11 BD A9 AB 26] { Load2021(reader); return; } if (type.Version != "2017.3.1f1") { Load(reader); if (0 == m_DataLength && type.Version.StartsWith("2017.")) // "2017.2.0f3" || "2017.1.1p1" { reader.ReadInt64(); } return; } m_Name = reader.ReadString(); reader.Align(); reader.ReadInt32(); // m_ForcedFallbackFormat reader.ReadInt32(); // m_DownscaleFallback m_Width = reader.ReadInt32(); m_Height = reader.ReadInt32(); m_CompleteImageSize = reader.ReadInt32(); m_TextureFormat = (TextureFormat)reader.ReadInt32(); m_MipCount = reader.ReadInt32(); m_IsReadable = reader.ReadBool(); reader.Align(); m_ImageCount = reader.ReadInt32(); m_TextureDimension = reader.ReadInt32(); m_FilterMode = reader.ReadInt32(); m_Aniso = reader.ReadInt32(); m_MipBias = reader.ReadFloat(); m_WrapMode = reader.ReadInt32(); // m_WrapU reader.ReadInt32(); // m_WrapV reader.ReadInt32(); // m_WrapW reader.ReadInt32(); // m_LightmapFormat m_ColorSpace = reader.ReadInt32(); m_DataLength = reader.ReadInt32(); }
public void Load2021(AssetReader reader) { m_Name = reader.ReadString(); reader.Align(); reader.ReadInt32(); // m_ForcedFallbackFormat reader.ReadInt32(); // m_DownscaleFallback m_Width = reader.ReadInt32(); m_Height = reader.ReadInt32(); m_CompleteImageSize = reader.ReadInt32(); reader.ReadInt32(); // m_MipsStripped; m_TextureFormat = (TextureFormat)reader.ReadInt32(); m_MipCount = reader.ReadInt32(); m_IsReadable = reader.ReadBool(); reader.Align(); reader.ReadInt32(); // m_StreamingMipmapsPriority m_ImageCount = reader.ReadInt32(); m_TextureDimension = reader.ReadInt32(); m_FilterMode = reader.ReadInt32(); m_Aniso = reader.ReadInt32(); m_MipBias = reader.ReadFloat(); m_WrapMode = reader.ReadInt32(); // m_WrapU reader.ReadInt32(); // m_WrapV reader.ReadInt32(); // m_WrapW reader.ReadInt32(); // m_LightmapFormat m_ColorSpace = reader.ReadInt32(); reader.ReadInt32(); m_DataLength = reader.ReadInt32(); }