Packaging Unity Asset Bundles, or an alternative, on Windows App

I have a windows program that I’m working on that I originally intended to allow the user to take a bunch of PNGs, convert them into the Unity formatted 2D sprites, and then package them into a Unity Asset Bundle in the correct format for w/e platform they wanted. This is part of a larger editing tool for standing up content.

The code works just fine when the program is run in the editor, but I didn’t know at the time that the namespace UnityEngine, cannot be built to a Windows program while I was creating it, which put a stop to the current built.

Is there a way to:

  1. Give a Windows program access to the UnityEngine Asset Bundle packing functions? Or maybe a third-party plugin?

  2. Or some sort of alternative to this that isn’t just a normal Zip file?

I tried testing a zip file with the PNGs, but the PNGs aren’t able to be compressed by the zip file in the way that Unity does with its Texture Compression for asset bundles for PNGs that are converted to 2D sprites, resulting in a file that is ~10x larger.

In its current state, the program is only usable in-editor, which isn’t a giant deal-breaker, but it requires our clients to 1) know how to use Unity, and 2) probably get a license, which wouldn’t be possible for all of the users.

I’m open to other suggestions.

Thanks in advance. :slight_smile:

Just checking if anything has any answers.

Hey! Sorry for the delay.

By AssetBundle packing functions, do you mean the building functions like “BuildPipeline.BuildAssetBundles”?

If so those are in Editor namespace and yes - only available in the Editor unfortunately!

For third party plugins, I’m not aware of any of the top of my head but the AssetStore would be the best bet.

1 Like

Yes, “BuildPipeline.BuildAssetBundles” is the namespace I was referring to. I did read something about the “Addressables Package” that should be used for building asset bundles, from the old Asset Bundle Browser GitHub page, which is no longer supported. Is that also editor-only or can I use that at runtime on Windows?