You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've copy pasted the code for Writing an Asset Bundle as so
var am = new AssetsManager();
var bunInst = am.LoadBundleFile("art.bundle");
//read the boring file from the bundle
var inst = am.LoadAssetsFileFromBundle(bunInst, 0, false);
var inf = inst.table.GetAssetInfo("Icon");
var baseField = am.GetTypeInstance(inst, inf).GetBaseField();
var thing = baseField.Get("m_Name").GetValue().AsString();
Console.WriteLine(thing);
baseField.Get("m_Name").GetValue().Set("MyCoolAsset");
var newGoBytes = baseField.WriteToByteArray();
var repl = new AssetsReplacerFromMemory(0, inf.index, (int)inf.curFileType, 0xffff, newGoBytes);
//write changes to memory
byte[] newAssetData;
using (var stream = new MemoryStream())
using (var writer = new AssetsFileWriter(stream))
{
inst.file.Write(writer, 0, new List<AssetsReplacer>() { repl }, 0);
newAssetData = stream.ToArray();
}
//rename this asset name from boring to cool when saving
var bunRepl = new BundleReplacerFromMemory("Icon", "Renamed", true, newAssetData, -1);
var bunWriter = new AssetsFileWriter(File.OpenWrite("coolbundle.bundle"));
bunInst.file.Write(bunWriter, new List<BundleReplacer>() { bunRepl });
Opening the created bundle gives the following error
System.ArgumentOutOfRangeException: Stream length must be non-negative and less than 2^31 - 1 - origin. (Parameter 'value')
at System.IO.MemoryStream.set_Position(Int64 value)
at AssetsTools.NET.AssetsFile..ctor(AssetsFileReader reader) in C:\Users\nesquack\Documents\GitReposLocal\AssetsTools.NET\AssetTools.NET\Standard\AssetsFileFormat\AssetsFile.cs:line 49
at AssetsTools.NET.Extra.AssetsFileInstance..ctor(Stream stream, String filePath, String root) in C:\Users\nesquack\Documents\GitReposLocal\AssetsTools.NET\AssetTools.NET\Extra\AssetsManager\AssetsFileInstance.cs:line 26
at AssetsTools.NET.Extra.AssetsManager.LoadAssetsFile(Stream stream, String path, Boolean loadDeps, String root, BundleFileInstance bunInst) in C:\Users\nesquack\Documents\GitReposLocal\AssetsTools.NET\AssetTools.NET\Extra\AssetsManager\AssetsManager.cs:line 29
at AssetsView.Winforms.StartScreen.LoadBundleFile(String path) in C:\Users\nesquack\Documents\GitReposLocal\AssetsTools.NET\AssetsView\Winforms\StartScreen.cs:line 128
at AssetsView.Winforms.StartScreen.addFileToolStripMenuItem_Click(Object sender, EventArgs e) in C:\Users\nesquack\Documents\GitReposLocal\AssetsTools.NET\AssetsView\Winforms\StartScreen.cs:line 103
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
If I DON'T rename the file then it saves and opens properly. That's exactly why I need this though... to rename a file in a bundle and I can't find a different tool that can do this programatically.
The headers are here where the first is changed and the second unchanged:
Opening my bundle with AssetViewer shows 3 files
Icon - Sprite
SpriteIndex - AssetBundle
Icon - Texture2D
It's unity version is 2019.4.23f1
I've copy pasted the code for Writing an Asset Bundle as so
Opening the created bundle gives the following error
If I DON'T rename the file then it saves and opens properly. That's exactly why I need this though... to rename a file in a bundle and I can't find a different tool that can do this programatically.
The headers are here where the first is changed and the second unchanged:
So how do I rename this file then?
The text was updated successfully, but these errors were encountered: