Oops, I've forgotten to update the releases since 3.0.0!
What did you miss?
AssetsTools.NET v3 reworked many of the APIs to be more "C# like" and away from the C++ headers it was originally based off of. Naming was made more consistent and closer to other tools (such as AssetRipper and AssetStudio), fields were converted to properties, replacers were made easier to use, and more. The tpks used in v3, created for both AssetRipper and AssetsTools.NET, are a newer version that supports better compression of type info than the original tpk made for UABE. Lz4 streaming block decompression was also introduced in this version, allowing you to read lz4 bundles without decompressing the entire file into memory.
This version
- Added back .NET 3.5 support (which was originally removed during the multithread support commit). (From @ds5678)
- Added
AssetTypeValueIterator. If you have a big asset but only care about a few fields, this is very good for that. It is similar to the RandomAccessReader class in UnityDataTools.AssetTypeValueIteratorplays things a bit more safe; the size field is never read and array elements can't be skipped all at once. It also cannot go backwards. As a result, this class may perform a little poorly at the moment. However, it has the advantage of using a lot less memory than reading an entire class at once withmanager.GetBaseField. (Thanks @flibber-hk and @al3ks1s for helping test) - Fixed issues with reading non-ASCII characters from type tree field and type names
- Improved performance, particularly in SegmentStream with an issue causing file length to be read many times, causing slowdown
- Added
originalCompressiontoBundleFileInstanceso you can remember the original compression format the bundle used if you want to compress back to it after making changes. - Support for parsing Tuanjie engine version strings and for parsing not-fully-complete version strings.
As always, you can grab these on NuGet as well.