Beispiel #1
0
        public MonoBehaviour(AssetPreloadData preloadData, bool readSwitch)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();

            var m_GameObject = sourceFile.ReadPPtr();
            var m_Enabled    = reader.ReadByte();

            reader.AlignStream(4);
            var m_Script = sourceFile.ReadPPtr();
            var m_Name   = reader.ReadAlignedString();

            if (readSwitch)
            {
                if ((serializedText = preloadData.GetClassString()) == null)
                {
                    var str = "PPtr<GameObject> m_GameObject\r\n";
                    str           += "\tint m_FileID = " + m_GameObject.m_FileID + "\r\n";
                    str           += "\tint64 m_PathID = " + m_GameObject.m_PathID + "\r\n";
                    str           += "UInt8 m_Enabled = " + m_Enabled + "\r\n";
                    str           += "PPtr<MonoScript> m_Script\r\n";
                    str           += "\tint m_FileID = " + m_Script.m_FileID + "\r\n";
                    str           += "\tint64 m_PathID = " + m_Script.m_PathID + "\r\n";
                    str           += "string m_Name = \"" + m_Name + "\"\r\n";
                    serializedText = str;
                }
            }
            else
            {
                preloadData.extension = ".txt";
                preloadData.Text      = m_Name;
            }
        }
Beispiel #2
0
        public AnimatorController(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var version    = preloadData.sourceFile.version;
            var reader     = preloadData.InitReader();

            reader.Position = preloadData.Offset;

            m_Name = reader.ReadAlignedString();
            var m_ControllerSize = reader.ReadUInt32();
            var m_Controller     = new ControllerConstant(reader, version);

            int tosSize = reader.ReadInt32();
            var m_TOS   = new List <KeyValuePair <uint, string> >(tosSize);

            for (int i = 0; i < tosSize; i++)
            {
                m_TOS.Add(new KeyValuePair <uint, string>(reader.ReadUInt32(), reader.ReadAlignedString()));
            }

            int numClips = reader.ReadInt32();

            m_AnimationClips = new PPtr[numClips];
            for (int i = 0; i < numClips; i++)
            {
                m_AnimationClips[i] = sourceFile.ReadPPtr();
            }
        }
Beispiel #3
0
        public static Bitmap GetImageFromSprite(AssetPreloadData asset)
        {
            var m_Sprite = new Sprite(asset, true);

            if (assetsfileList.TryGetPD(m_Sprite.m_SpriteAtlas, out var assetPreloadData))
            {
                var m_SpriteAtlas = new SpriteAtlas(assetPreloadData);
                var index         = m_SpriteAtlas.guids.FindIndex(x => x == m_Sprite.first);
                if (index >= 0 && assetsfileList.TryGetPD(m_SpriteAtlas.textures[index], out assetPreloadData))
                {
                    try
                    {
                        return(CutImage(asset, assetPreloadData, m_SpriteAtlas.textureRects[index], m_Sprite));
                    }
                    catch
                    {
                        return(CutImage(asset, assetPreloadData, m_SpriteAtlas.textureRects[index]));
                    }
                }
            }
            else
            {
                if (assetsfileList.TryGetPD(m_Sprite.texture, out assetPreloadData))
                {
                    return(CutImage(asset, assetPreloadData, m_Sprite.textureRect));
                }
            }

            return(null);
        }
Beispiel #4
0
        public static bool ExportRawFile(AssetPreloadData asset, string exportPath, string fileExtension = ".dat")
        {
            var exportFullName = Path.Combine(exportPath, string.Concat(asset.Text, fileExtension));

            switch (asset.Type)
            {
            case ClassIDType.MonoBehaviour:
                exportFullName = GetExportMonoBehaviourPath(asset, exportPath, fileExtension);
                break;

            case ClassIDType.MonoScript:
                exportFullName = GetExportMonoScriptPath(asset, exportPath, fileExtension);
                break;
            }

            if (ExportFileExists(exportFullName))
            {
                return(false);
            }

            var bytes = asset.InitReader().ReadBytes((int)asset.Size);

            File.WriteAllBytes(exportFullName, bytes);
            return(true);
        }
Beispiel #5
0
        public PPtrKeyframe(AssetPreloadData preloadData)
        {
            var reader = preloadData.sourceFile.reader;

            time  = reader.ReadSingle();
            value = preloadData.sourceFile.ReadPPtr();
        }
        public PlayerSettings(AssetPreloadData preloadData) : base(preloadData)
        {
            if ((version[0] == 5 && version[1] >= 4) || version[0] > 5)//5.4.0 nad up
            {
                //productGUID
                reader.ReadInt32();
                reader.ReadInt32();
                reader.ReadInt32();
                reader.ReadInt32();
            }
            if (version[0] >= 3)
            {
                if (version[0] == 3 && version[1] < 2)
                {
                    string AndroidLicensePublicKey = reader.ReadAlignedString();
                }
                else
                {
                    bool AndroidProfiler = reader.ReadBoolean(); reader.AlignStream(4);
                }

                int defaultScreenOrientation = reader.ReadInt32();
                int targetDevice             = reader.ReadInt32();

                if (version[0] < 5 || (version[0] == 5 && version[1] < 1))
                {
                    int targetGlesGraphics = reader.ReadInt32();
                }

                if ((version[0] == 5 && version[1] < 1) || (version[0] == 4 && version[1] == 6 && version[2] >= 3))
                {
                    int targetIOSGraphics = reader.ReadInt32();
                }

                if (version[0] >= 5 || version[0] == 5 && (version[1] > 2 || (version[1] == 2 && version[2] >= 1)))
                {
                    bool useOnDemandResources = reader.ReadBoolean(); reader.AlignStream(4);
                }

                if (version[0] < 5 || (version[0] == 5 && version[1] < 3))
                {
                    int targetResolution = reader.ReadInt32();
                }

                if (version[0] == 3 && version[1] <= 1)
                {
                    bool OverrideIPodMusic = reader.ReadBoolean(); reader.AlignStream(4);
                }
                else if (version[0] == 3 && version[1] <= 4)
                {
                }
                else//3.5.0 and up
                {
                    int accelerometerFrequency = reader.ReadInt32();
                }
            }
            //fail in version 5 beta
            companyName = reader.ReadAlignedString();
            productName = reader.ReadAlignedString();
        }
Beispiel #7
0
        public static bool ExportSprite(AssetPreloadData asset, string exportPath)
        {
            ImageFormat format = null;
            var         type   = (string)Properties.Settings.Default["convertType"];

            switch (type)
            {
            case "BMP":
                format = ImageFormat.Bmp;
                break;

            case "PNG":
                format = ImageFormat.Png;
                break;

            case "JPEG":
                format = ImageFormat.Jpeg;
                break;
            }
            var exportFullName = exportPath + asset.Text + "." + type.ToLower();

            if (ExportFileExists(exportFullName))
            {
                return(false);
            }
            var bitmap = SpriteHelper.GetImageFromSprite(new Sprite(asset));

            if (bitmap != null)
            {
                bitmap.Save(exportFullName, format);
                return(true);
            }
            return(false);
        }
Beispiel #8
0
        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();
                }
            }
        }
Beispiel #9
0
        public GameObject(AssetPreloadData preloadData) : base(preloadData)
        {
            int m_Component_size = reader.ReadInt32();

            m_Components = new List <PPtr>(m_Component_size);
            for (int j = 0; j < m_Component_size; j++)
            {
                if ((sourceFile.version[0] == 5 && sourceFile.version[1] >= 5) || sourceFile.version[0] > 5)//5.5.0 and up
                {
                    m_Components.Add(sourceFile.ReadPPtr());
                }
                else
                {
                    int first = reader.ReadInt32();
                    m_Components.Add(sourceFile.ReadPPtr());
                }
            }

            var m_Layer = reader.ReadInt32();

            m_Name = reader.ReadAlignedString();

            if (m_Name == "")
            {
                m_Name = "GameObject #" + preloadData.uniqueID;
            }
        }
Beispiel #10
0
        public MonoScript(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();
            var version    = sourceFile.version;

            m_Name = reader.ReadAlignedString();
            if (version[0] > 3 || (version[0] == 3 && version[1] >= 4))
            {
                var m_ExecutionOrder = reader.ReadAlignedString();
            }
            if (version[0] < 5)
            {
                var m_PropertiesHash = reader.ReadUInt32();
            }
            else
            {
                var m_PropertiesHash = reader.ReadBytes(16);
            }
            if (version[0] < 3)
            {
                var m_PathName = reader.ReadAlignedString();
            }
            m_ClassName = reader.ReadAlignedString();
            if (version[0] >= 3)
            {
                m_Namespace = reader.ReadAlignedString();
            }
            m_AssemblyName = reader.ReadAlignedString();
            if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2))
            {
                var m_IsEditorScript = reader.ReadBoolean();
            }
        }
Beispiel #11
0
 public MonoScript(AssetPreloadData preloadData) : base(preloadData)
 {
     if (version[0] > 3 || (version[0] == 3 && version[1] >= 4)) //3.4 and up
     {
         var m_ExecutionOrder = reader.ReadInt32();
     }
     if (version[0] < 5) //5.0 down
     {
         var m_PropertiesHash = reader.ReadUInt32();
     }
     else
     {
         var m_PropertiesHash = reader.ReadBytes(16);
     }
     if (version[0] < 3) //3.0 down
     {
         var m_PathName = reader.ReadAlignedString();
     }
     m_ClassName = reader.ReadAlignedString();
     if (version[0] >= 3) //3.0 and up
     {
         m_Namespace = reader.ReadAlignedString();
     }
     m_AssemblyName = reader.ReadAlignedString();
     if (version[0] < 2018 || (version[0] == 2018 && version[1] < 2)) //2018.2 down
     {
         var m_IsEditorScript = reader.ReadBoolean();
     }
 }
Beispiel #12
0
        public BuildSettings(AssetPreloadData preloadData) : base(preloadData)
        {
            int levels = reader.ReadInt32();

            for (int l = 0; l < levels; l++)
            {
                var level = reader.ReadAlignedString();
            }

            if (version[0] >= 5)
            {
                int preloadedPlugins = reader.ReadInt32();
                for (int l = 0; l < preloadedPlugins; l++)
                {
                    var preloadedPlugin = reader.ReadAlignedString();
                }
            }

            reader.Position += 4;
            if (version[0] >= 3) //3.0 and up
            {
                reader.Position += 4;
            }
            if (version[0] > 3 || (version[0] == 3 && version[1] >= 5))//3.5 and up
            {
                reader.Position += 4;
            }
            if (version[0] >= 5 || (version[0] == 4 && (version[1] >= 3 || (version[1] == 2 && buildType[0] != "a"))))
            {
                reader.Position += 4;
            }
            m_Version = reader.ReadAlignedString();
        }
Beispiel #13
0
        public PPtrKeyframe(AssetPreloadData preloadData, Dictionary <string, int> sharedFileIndex, List <AssetsFile> assetsfileList)
        {
            var reader = preloadData.sourceFile.reader;

            time  = reader.ReadSingle();
            value = preloadData.sourceFile.ReadPPtr(sharedFileIndex, assetsfileList);
        }
Beispiel #14
0
        public PPtr m_Father          = new PPtr();//can be transform or type 224 (as seen in Minions)

        public Transform(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var a_Stream   = preloadData.sourceFile.a_Stream;

            a_Stream.Position = preloadData.Offset;

            if (sourceFile.platform == -2)
            {
                uint m_ObjectHideFlags    = a_Stream.ReadUInt32();
                PPtr m_PrefabParentObject = sourceFile.ReadPPtr();
                PPtr m_PrefabInternal     = sourceFile.ReadPPtr();
            }

            m_GameObject    = sourceFile.ReadPPtr();
            m_LocalRotation = new float[] { a_Stream.ReadSingle(), a_Stream.ReadSingle(), a_Stream.ReadSingle(), a_Stream.ReadSingle() };
            m_LocalPosition = new float[] { a_Stream.ReadSingle(), a_Stream.ReadSingle(), a_Stream.ReadSingle() };
            m_LocalScale    = new float[] { a_Stream.ReadSingle(), a_Stream.ReadSingle(), a_Stream.ReadSingle() };
            int m_ChildrenCount = a_Stream.ReadInt32();

            for (int j = 0; j < m_ChildrenCount; j++)
            {
                m_Children.Add(sourceFile.ReadPPtr());
            }
            m_Father = sourceFile.ReadPPtr();
        }
Beispiel #15
0
        public MeshFilter(AssetPreloadData preloadData, Dictionary <string, int> sharedFileIndex, List <AssetsFile> assetsfileList)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();

            m_GameObject = sourceFile.ReadPPtr(sharedFileIndex, assetsfileList);
            m_Mesh       = sourceFile.ReadPPtr(sharedFileIndex, assetsfileList);
        }
Beispiel #16
0
        private static void SpriteInfo(AssetPreloadData asset, AssetPreloadData texture2DAsset, RectangleF textureRect)
        {
            var info  = texture2DAsset.InfoText;
            var start = info.IndexOf("Format");

            info           = info.Substring(start, info.Length - start);
            asset.InfoText = $"Width: {textureRect.Width}\nHeight: {textureRect.Height}\n" + info;
        }
Beispiel #17
0
 protected EditorExtension(AssetPreloadData preloadData) : base(preloadData)
 {
     if (platform == BuildTarget.NoTarget)
     {
         var m_PrefabParentObject = sourceFile.ReadPPtr();
         var m_PrefabInternal     = sourceFile.ReadPPtr();
     }
 }
Beispiel #18
0
        public static bool ExportAnimator(AssetPreloadData animator, string exportPath, List <AssetPreloadData> animationList = null)
        {
            var m_Animator = new Animator(animator);
            var convert    = animationList != null ? new ModelConverter(m_Animator, animationList) : new ModelConverter(m_Animator);

            exportPath = exportPath + Studio.FixFileName(animator.Text) + ".fbx";
            return(ModelConverter(convert, exportPath));
        }
Beispiel #19
0
        public MeshFilter(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();

            m_GameObject = sourceFile.ReadPPtr();
            m_Mesh       = sourceFile.ReadPPtr();
        }
Beispiel #20
0
        public Shader(AssetPreloadData preloadData, bool readSwitch)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();

            m_Name = reader.ReadAlignedString();

            if (readSwitch)
            {
                if (sourceFile.version[0] == 5 && sourceFile.version[1] >= 5 || sourceFile.version[0] > 5)//5.5.0 and up
                {
                    var str = (string)ShaderResource.ResourceManager.GetObject($"Shader{sourceFile.version[0]}{sourceFile.version[1]}");
                    if (str == null)
                    {
                        str = preloadData.ViewStruct();
                        if (str == null)
                        {
                            m_Script = Encoding.UTF8.GetBytes("Serialized Shader can't be read");
                        }
                        else
                        {
                            m_Script = Encoding.UTF8.GetBytes(str);
                        }
                    }
                    else
                    {
                        reader.Position = preloadData.Offset;
                        var sb      = new StringBuilder();
                        var members = new JavaScriptSerializer().Deserialize <List <ClassMember> >(str);
                        ClassStructHelper.ReadClassStruct(sb, members, reader);
                        m_Script = Encoding.UTF8.GetBytes(sb.ToString());
                        //m_Script = ReadSerializedShader(members, a_Stream);
                    }
                }
                else
                {
                    m_Script = reader.ReadBytes(reader.ReadInt32());
                    if (sourceFile.version[0] == 5 && sourceFile.version[1] >= 3) //5.3 - 5.4
                    {
                        reader.AlignStream(4);
                        reader.ReadAlignedString();//m_PathName
                        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();
                    }
                }
            }
            else
            {
                preloadData.extension = ".txt";
                preloadData.Text      = m_Name;
            }
        }
Beispiel #21
0
        public MovieTexture(AssetPreloadData preloadData) : base(preloadData)
        {
            var m_Loop = reader.ReadBoolean();

            reader.AlignStream(4);
            //PPtr<AudioClip>
            sourceFile.ReadPPtr();
            m_MovieData = reader.ReadBytes(reader.ReadInt32());
        }
Beispiel #22
0
 protected Texture(AssetPreloadData preloadData) : base(preloadData)
 {
     if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 3)) //2017.3 and up
     {
         var m_ForcedFallbackFormat = reader.ReadInt32();
         var m_DownscaleFallback    = reader.ReadBoolean();
         reader.AlignStream(4);
     }
 }
Beispiel #23
0
        public FloatCurve(AssetPreloadData preloadData)
        {
            var reader = preloadData.sourceFile.reader;

            curve     = new AnimationCurve <float>(reader, reader.ReadSingle, preloadData.sourceFile.version);
            attribute = reader.ReadAlignedString();
            path      = reader.ReadAlignedString();
            classID   = reader.ReadInt32();
            script    = preloadData.sourceFile.ReadPPtr();
        }
Beispiel #24
0
        public FloatCurve(AssetPreloadData preloadData, Dictionary <string, int> sharedFileIndex, List <AssetsFile> assetsfileList)
        {
            var reader = preloadData.sourceFile.reader;

            curve     = new AnimationCurve <float>(reader, reader.ReadSingle, preloadData.sourceFile.version);
            attribute = reader.ReadAlignedString();
            path      = reader.ReadAlignedString();
            classID   = reader.ReadInt32();
            script    = preloadData.sourceFile.ReadPPtr(sharedFileIndex, assetsfileList);
        }
Beispiel #25
0
        public Animation(AssetPreloadData preloadData) : base(preloadData)
        {
            var m_Animation   = sourceFile.ReadPPtr();
            int numAnimations = reader.ReadInt32();

            m_Animations = new List <PPtr>(numAnimations);
            for (int i = 0; i < numAnimations; i++)
            {
                m_Animations.Add(sourceFile.ReadPPtr());
            }
        }
Beispiel #26
0
        public static string GetExportMonoScriptPath(AssetPreloadData asset, string exportPath, string fileExtension = ".txt")
        {
            var m_Script = new MonoScript(asset);

            if (m_Script.m_Namespace == string.Empty)
            {
                return(Path.Combine(exportPath, m_Script.m_ClassName, string.Concat(asset.Text, fileExtension)));
            }

            return(Path.Combine(exportPath, m_Script.m_Namespace, m_Script.m_ClassName, string.Concat(asset.Text, fileExtension)));
        }
Beispiel #27
0
        public static bool ExportTexture2D(AssetPreloadData asset, string exportPathName, bool flip)
        {
            var m_Texture2D = new Texture2D(asset, true);

            if (m_Texture2D.image_data == null || m_Texture2D.image_data.Length == 0)
            {
                return(false);
            }
            var converter      = new Texture2DConverter(m_Texture2D);
            var convertTexture = (bool)Properties.Settings.Default["convertTexture"];

            if (convertTexture)
            {
                var bitmap = converter.ConvertToBitmap(flip);
                if (bitmap == null)
                {
                    return(false);
                }
                ImageFormat format = null;
                var         ext    = (string)Properties.Settings.Default["convertType"];
                switch (ext)
                {
                case "BMP":
                    format = ImageFormat.Bmp;
                    break;

                case "PNG":
                    format = ImageFormat.Png;
                    break;

                case "JPEG":
                    format = ImageFormat.Jpeg;
                    break;
                }
                var exportFullName = exportPathName + asset.Text + "." + ext.ToLower();
                if (ExportFileExists(exportFullName))
                {
                    return(false);
                }
                bitmap.Save(exportFullName, format);
                bitmap.Dispose();
                return(true);
            }
            else
            {
                var exportFullName = exportPathName + asset.Text + converter.GetExtensionName();
                if (ExportFileExists(exportFullName))
                {
                    return(false);
                }
                File.WriteAllBytes(exportFullName, converter.ConvertToContainer());
                return(true);
            }
        }
Beispiel #28
0
        public PlayerSettings(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var a_Stream   = preloadData.sourceFile.a_Stream;

            a_Stream.Position = preloadData.Offset;

            if (sourceFile.version[0] >= 3)
            {
                if (sourceFile.version[0] == 3 && sourceFile.version[1] < 2)
                {
                    string AndroidLicensePublicKey = a_Stream.ReadAlignedString(a_Stream.ReadInt32());
                }
                else
                {
                    bool AndroidProfiler = a_Stream.ReadBoolean(); a_Stream.AlignStream(4);
                }

                int defaultScreenOrientation = a_Stream.ReadInt32();
                int targetDevice             = a_Stream.ReadInt32();

                if (sourceFile.version[0] < 5 || (sourceFile.version[0] == 5 && sourceFile.version[1] < 1))
                {
                    int targetGlesGraphics = a_Stream.ReadInt32();
                }

                if ((sourceFile.version[0] == 5 && sourceFile.version[1] < 1) || (sourceFile.version[0] == 4 && sourceFile.version[1] == 6 && sourceFile.version[2] >= 3))
                {
                    int targetIOSGraphics = a_Stream.ReadInt32();
                }

                if (sourceFile.version[0] == 5 && (sourceFile.version[1] > 2 || (sourceFile.version[1] == 2 && sourceFile.version[2] >= 1)))
                {
                    bool useOnDemandResources = a_Stream.ReadBoolean(); a_Stream.AlignStream(4);
                }

                int targetResolution = a_Stream.ReadInt32();

                if (sourceFile.version[0] == 3 && sourceFile.version[1] <= 1)
                {
                    bool OverrideIPodMusic = a_Stream.ReadBoolean(); a_Stream.AlignStream(4);
                }
                else if (sourceFile.version[0] == 3 && sourceFile.version[1] <= 4)
                {
                }
                else
                {
                    int accelerometerFrequency = a_Stream.ReadInt32();
                }                                                          //3.5.0 and up
            }
            //fail in version 5 beta
            companyName = a_Stream.ReadAlignedString(a_Stream.ReadInt32());
            productName = a_Stream.ReadAlignedString(a_Stream.ReadInt32());
        }
Beispiel #29
0
        public MonoBehaviour(AssetPreloadData preloadData)
        {
            var sourceFile = preloadData.sourceFile;
            var reader     = preloadData.InitReader();

            m_GameObject = sourceFile.ReadPPtr();
            m_Enabled    = reader.ReadByte();
            reader.AlignStream(4);
            m_Script = sourceFile.ReadPPtr();
            m_Name   = reader.ReadAlignedString();
        }
Beispiel #30
0
        public static bool ExportMovieTexture(AssetPreloadData asset, string exportPath)
        {
            var m_MovieTexture = new MovieTexture(asset);
            var exportFullName = exportPath + asset.Text + ".ogv";

            if (ExportFileExists(exportFullName))
            {
                return(false);
            }
            File.WriteAllBytes(exportFullName, m_MovieTexture.m_MovieData);
            return(true);
        }