Esempio n. 1
0
        private void infoButton_Click(object sender, EventArgs e)
        {
            FileStream stream = new FileStream(bundlePath, FileMode.Open, FileAccess.ReadWrite);
            int        start  = (int)(bundle.bundleHeader6.GetFileDataOffset() + bundle.bundleInf6.dirInf[bundleContents.SelectedIndex].offset);
            int        length = (int)bundle.bundleInf6.dirInf[bundleContents.SelectedIndex].decompressedSize;

            byte[] data;
            using (BinaryReader reader = new BinaryReader(stream))
            {
                reader.BaseStream.Position = start;
                data = reader.ReadBytes(length);
            }
            MemoryStream partition = new MemoryStream(data);
            AssetViewer  av        = new AssetViewer(partition, Path.GetDirectoryName(stream.Name), Path.GetFileName(stream.Name));

            av.ShowDialog();
        }
Esempio n. 2
0
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "Unity content (*.unity3d;*.assets)|*.unity3d;*.assets|Bundle file (*.unity3d)|*.unity3d|Assets file (*.assets)|*.assets|All types (*.*)|*.*";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //try
                //{
                //todo, use using
                FileStream       stream     = new FileStream(ofd.FileName, FileMode.Open, FileAccess.ReadWrite);
                AssetsFileReader tempReader = new AssetsFileReader(stream);     //todo .assets sanity check
                if (tempReader.ReadStringLength(7) != "UnityFS")
                {
                    tempReader.Position = 0;
                    AssetViewer av = new AssetViewer(stream, Path.GetDirectoryName(stream.Name), Path.GetFileName(stream.Name));
                    av.ShowDialog();
                }
                else
                {
                    tempReader.Position = 0;
                    BundleLoader bl = new BundleLoader(stream);
                    bl.ShowDialog();
                    if (bl.loaded)
                    {
                        bundleContents.Enabled = true;
                        exportButton.Enabled   = true;
                        importButton.Enabled   = true;
                        infoButton.Enabled     = true;
                        foreach (AssetsBundleDirectoryInfo06 di in bl.bundle.bundleInf6.dirInf)
                        {
                            bundleContents.Items.Add(di.name);
                        }
                        bundleContents.SelectedIndex = 0;
                        bundlePath    = bl.bundleFilename;
                        fileName.Text = Path.GetFileName(bundlePath);
                        bundle        = bl.bundle;
                    }
                }
                tempReader = null;
                //} catch (Exception ex)
                //{
                //    MessageBox.Show("Unable to open the file!\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //}
            }
        }