How to download new assets into the build once the player has already installed it

I would like to be able to load new assets into the build once the player has already installed it (mobile).

The game idea is very dynamic - its constantly changing and new things are added but there is far too much stuff to have it all stored at once. Ideally I would just send in a package with new assets into the project and a scene which I can load.
I was hoping to send a .unitypackage as they are so small but I’m aware you might need unity to unpack it, in which case its not viable.

Any other recommendations or solutions?

Hello, have you considered using Unity Asset Bundles to meet your requirements? You can find information about them at

https://docs.unity3d.com/Manual/AssetBundlesIntro.html.

This feature enables you to package and load assets dynamically at runtime.

Hi @ru4ls, for this case it needs to be able to load bew code, scripts etc… imagine like adding a new minigame into the current one. is there a way i could go about this?

Hi, in such a scenario, given the constraints of managed code and the compile-time knowledge inherent in Unity, idk, but one approach that comes to mind is to employ a combination of AssetBundles for assets and a data-driven system for defining the logic, utilizing JSON Serialization, for instance.

Unity - Manual: JSON Serialization (unity3d.com)

This approach allowing for configuration and parameter adjustments without necessitating a full project rebuild.

  1. Data-Driven Mini-Game: Define the behavior of the mini-game through data files, such as JSON. Specify details or parameter such as object spawning rates, scoring rules, and any other dynamic behaviors you may require.

  2. AssetBundle for Assets: Leverage AssetBundles to encapsulate models, textures, and other visual/audio assets for the mini-game. Load these assets dynamically during runtime to enhance flexibility.

  3. Runtime Logic:
    Develop a generic script or system within the main game to interpret data files for the mini-game. Leverage JsonUtility.FromJson to deserialize JSON data from a TextAsset during runtime. This enables the dynamic creation and management of game objects based on the data-driven rules.

  4. ScriptableObjects: Consider utilizing ScriptableObjects to facilitate dynamic loading of logic modules. While not scripts themselves, these logic modules can effectively define rules, actions, and behaviors for the mini-game.

This approach decouples dynamic behavior from C# scripts, providing the flexibility to define and modify game logic without the need to introduce new scripts at runtime.