Setting Up and Verifying Unity's Addressable Asset System for Runtime Asset Loading
Learn how to mark assets as addressable, build bundles, and confirm they load correctly at runtime with a simple verification script.
23 Sept 2025, 04:28 UTC

Desired Outcome
Configure a Unity project so that selected assets are managed by the Addressable Asset System, built into asset bundles, and can be loaded at runtime by address without blocking the main thread.
Prerequisites
- Unity 2021.3 LTS or newer (the Addressables package is compatible with these versions).
- Addressable Asset System package installed via the Package Manager (window → Package Manager → Unity Registry → search "Addressables").
- A Unity project with at least one asset (e.g., a Prefab, Texture, or AudioClip) that you want to make addressable.
- Basic familiarity with the Unity Editor hierarchy and the Play mode workflow.
Procedure
-
Open the Addressables Groups window
Choose
Window → Asset Management → Addressables → Groups. This window lets you create groups, assign assets, and set their addresses. -
Create a new Addressable group
In the Groups window, click the
+button and selectNew Group. Name the group, for exampleGameplayAssets. Leave theBundlingsetting asPack Togetherfor simplicity. -
Add assets to the group
Drag the desired asset from the Project window into the group entry in the Groups window. The asset will appear as a child entry.
-
Assign an address
Select the asset entry inside the group. In the Inspector, locate the
Addressfield and type a unique string, e.g.,enemy_prefab. This string is the key you will use to load the asset at runtime. -
Mark the asset as addressable
With the asset still selected, check the
Addressablebox in the Inspector. The asset icon will change to show the Addressables label. -
Build the player content
Open the Build menu:
File → Build Settings. Ensure your target platform is selected, then clickBuild(orBuild And Run). Unity will automatically generate AssetBundles for each Addressable group and place them in theBuildfolder next to the generated player. -
Create a verification script
Add a new C# script to any GameObject in the first scene (e.g., an empty GameObject named
AddressableTester). Paste the following code:using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class AddressableTester : MonoBehaviour { private void Start() { // Replace "enemy_prefab" with the address you set above Addressables.LoadAssetAsync("enemy_prefab").Completed += handle => { if (handle.Status == AsyncOperationStatus.Succeeded) { Debug.Log("[Addressables] Asset loaded successfully: " + handle.Result.name); // Optional: instantiate the asset to see it in the scene Instantiate(handle.Result); } else { Debug.LogError("[Addressables] Failed to load asset: " + handle.OperationException); } }; } } -
Enter Play mode and observe the Console
Press Play. The script will attempt to load the asset by its address. Look for a success message similar to
[Addressables] Asset loaded successfully: EnemyPrefab. If you see an error such as "Address not found", double‑check the address string and that the asset is marked as Addressable.
Expected Checks
- Editor verification: In the Addressables Groups window, confirm the asset appears under the correct group and the Address field matches the string used in the script.
- Play‑mode verification: The Console shows a success log and, if you added the Instantiate line, the asset appears in the Scene view.
- Post‑build verification: After building, navigate to the
Buildfolder. You should see one or more files with the extension.bundle(or.bindepending on bundle naming). The bundle name typically matches the group name (e.g.,GameplayAssets.bundle). If you modify the asset and rebuild, the bundle’s hash (visible in the file name or in themanifest.json) should change, indicating a proper rebuild.
Recovery Options (Rollback)
Marking assets as addressable and building bundles changes the project state. To revert:
- In the Addressables Groups window, select the group or asset and uncheck the
Addressablebox, or delete the group entirely. - Remove any Addressables‑specific scripts you added for testing.
- Delete the generated
Buildfolder (or rebuild the player without the Addressables build step) to clean stray bundles. - Save the scene and project.
These steps return the project to its pre‑Addressables configuration, allowing you to rebuild using the standard asset pipeline if needed.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.