public Shader(AssetPreloadData preloadData) : base(preloadData) { if (sourceFile.version[0] == 5 && sourceFile.version[1] >= 5 || sourceFile.version[0] > 5) //5.5.0 and up { var str = preloadData.Dump(); m_Script = Encoding.UTF8.GetBytes(str ?? "Serialized Shader can't be read"); } else { m_Script = reader.ReadBytes(reader.ReadInt32()); if (sourceFile.version[0] == 5 && sourceFile.version[1] >= 3) //5.3 - 5.4 { reader.AlignStream(4); var m_PathName = reader.ReadAlignedString(); var decompressedSize = reader.ReadUInt32(); var m_SubProgramBlob = reader.ReadBytes(reader.ReadInt32()); var decompressedBytes = new byte[decompressedSize]; using (var decoder = new Lz4DecoderStream(new MemoryStream(m_SubProgramBlob))) { decoder.Read(decompressedBytes, 0, (int)decompressedSize); } m_Script = m_Script.Concat(decompressedBytes.ToArray()).ToArray(); } } }
public static void WriteMonoText(AssetPreloadData asset, string exportFullPath) { string str; if (asset.serializedType?.m_Nodes != null) { str = asset.Dump(); } else { str = Studio.GetScriptString(asset); } File.WriteAllText(exportFullPath, str); }
public static bool ExportMonoBehaviour(AssetPreloadData asset, string exportPath) { var exportFullName = exportPath + asset.Text + ".txt"; if (ExportFileExists(exportFullName)) { return(false); } var m_MonoBehaviour = new MonoBehaviour(asset); string str; if (asset.serializedType.m_Nodes != null) { str = asset.Dump(); } else { str = Studio.GetScriptString(asset); } File.WriteAllText(exportFullName, str); return(true); }