
Garbage Collection in Unity: How Memory Management Works and How to Avoid GC Spikes
June 16, 2026
Unity Performance Mistakes Beginners Make (And How to Avoid Them)
June 19, 2026As Unity projects grow larger, managing assets becomes increasingly difficult. Textures, prefabs, audio files, UI elements, and scenes can quickly turn a project into a heavy and hard-to-maintain system.
Many developers start by using the traditional Resources folder to load assets at runtime. While this works for small projects, it often causes serious problems in larger games such as long loading times, increased memory usage, and larger build sizes.
This is where Unity Addressables comes in.
The Addressables system provides a modern and flexible way to load and manage assets in Unity. It allows developers to load assets asynchronously, manage memory more efficiently, and even update content remotely without rebuilding the entire game.
In this guide, we’ll explore what Addressables are, why they are useful, and how to start using them in your Unity projects.
What Are Unity Addressables?
Unity Addressables is an asset management system that allows you to load assets using an address instead of direct references.
Instead of referencing assets directly in scripts or scenes, each asset gets a unique string address that can be used to load it dynamically.
For example, instead of referencing a prefab directly in the inspector, you can load it like this:
Addressables.LoadAssetAsync<GameObject>("EnemyPrefab");
This approach provides several advantages:
- Assets can be loaded asynchronously
- Assets can be unloaded when not needed
- Memory usage becomes easier to control
- Content can be updated remotely
In short, Addressables give developers much more control over how assets are loaded and managed during gameplay.
Why Use Addressables Instead of the Resources Folder?
The Resources folder used to be the most common way to load assets dynamically in Unity. However, it has several limitations.
When assets are placed inside the Resources folder, Unity includes all of them in the build automatically. This means they are always available in memory, even if you only need a few of them.
This can lead to:
- Larger build sizes
- Higher memory usage
- Slower loading times
Addressables solve this problem by allowing assets to be loaded only when they are actually needed.
Think of it like streaming content instead of downloading everything at once.
Installing Addressables in Unity
Before using Addressables, you need to install the package.
Follow these steps:
- Open the Package Manager
- Search for Addressables
- Install the package
After installation, Unity will ask if you want to create the Addressables settings. Click Create Addressables Settings.
This will generate the necessary configuration files for managing addressable assets.
Making an Asset Addressable
To use Addressables, you first need to mark assets as addressable.
The process is simple:
- Select an asset (prefab, texture, audio, etc.)
- Check the Addressable checkbox in the inspector
- Assign a unique address name
For example:
- EnemyPrefab
- MainMenuUI
- ExplosionEffect
These addresses will be used later in scripts to load the assets.
Loading Assets with Addressables
One of the biggest advantages of Addressables is asynchronous loading. This means assets can be loaded in the background without freezing the game.
Here is a simple example of loading a prefab:
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class AddressableExample : MonoBehaviour
{
public string enemyAddress = "EnemyPrefab";
void Start()
{
Addressables.LoadAssetAsync<GameObject>(enemyAddress).Completed += OnEnemyLoaded;
}
void OnEnemyLoaded(AsyncOperationHandle<GameObject> handle)
{
if (handle.Status == AsyncOperationStatus.Succeeded)
{
Instantiate(handle.Result);
}
}
}
In this example, the asset is loaded asynchronously and instantiated once the loading process finishes.
This prevents the game from freezing while assets are being loaded.
Instantiating Addressable Prefabs
Unity also provides a convenient method for directly instantiating addressable prefabs.
Addressables.InstantiateAsync("EnemyPrefab");
This method handles both loading and instantiation automatically.
It is especially useful when spawning objects such as enemies, projectiles, or environment props.
Releasing Addressable Assets
One important aspect of using Addressables is properly releasing assets when they are no longer needed.
If you forget to release them, memory usage can slowly increase over time.
To release an asset:
Addressables.Release(handle);
This tells Unity that the asset can be unloaded from memory when possible.
Managing memory correctly is one of the main advantages of the Addressables system.
Addressable Groups
Addressables organize assets into groups. Each group can have its own build settings and loading behavior.
For example, you might create groups such as:
- Environment Assets
- UI Assets
- Audio Files
- Enemy Prefabs
Groups can also control how assets are packaged into asset bundles.
This flexibility allows developers to structure large projects much more efficiently.
Remote Content Updates
One powerful feature of Addressables is the ability to update game content remotely.
Instead of forcing players to download a new version of the entire game, you can host updated asset bundles on a server.
The game can then download only the updated content when needed.
This is extremely useful for:
- Live service games
- Seasonal events
- Adding new levels
- Updating textures or models
Remote content updates can dramatically reduce patch sizes and improve player experience.
Best Practices for Using Addressables
To get the most out of Addressables, keep these best practices in mind:
- Use clear and consistent address naming
- Load assets asynchronously whenever possible
- Release assets when they are no longer needed
- Organize assets into logical groups
- Avoid loading too many assets at once
Following these practices will help maintain stable performance and efficient memory usage.
Final Thoughts
Unity Addressables is one of the most powerful systems available for managing assets in modern Unity projects. While it may require a small learning curve at first, the benefits quickly become clear in larger games.
With Addressables, developers gain greater control over memory usage, loading performance, and content delivery.
Whether you are building a mobile game, a large open-world project, or a live service game, Addressables can significantly improve how your assets are managed and delivered to players.
If you are still relying heavily on the Resources folder, learning Addressables might be one of the best upgrades you can make to your Unity workflow.
Your future self (and your game’s loading times) will definitely appreciate it.










