Exemplo n.º 1
0
        public Shader(ObjectReader reader) : base(reader)
        {
            if (version[0] == 5 && version[1] >= 5 || version[0] > 5) //5.5.0 and up
            {
                var str = reader.Dump();
                m_Script = Encoding.UTF8.GetBytes(str ?? "Serialized Shader can't be read");
            }
            else
            {
                m_Script = reader.ReadBytes(reader.ReadInt32());
                if (version[0] == 5 && 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();
                }
            }
        }
Exemplo n.º 2
0
        public static bool ExportMonoBehaviour(ObjectReader reader, string exportPath)
        {
            var exportFullName = exportPath + reader.exportName + ".txt";

            if (ExportFileExists(exportFullName))
            {
                return(false);
            }
            var    m_MonoBehaviour = new MonoBehaviour(reader);
            string str;

            if (reader.serializedType?.m_Nodes != null)
            {
                str = reader.Dump();
            }
            else
            {
                str = ScriptHelper.GetScriptString(reader);
            }
            File.WriteAllText(exportFullName, str);
            return(true);
        }