C# API
The static AssetReferences facade provides lookup, streaming control, cache maintenance, and
runtime events.
Common tasks
Section titled “Common tasks”The selected entry’s Advanced details panel can copy its ID, a typed Get<T> snippet, or a safe
TryGet<T> snippet.

using SkywardGames.AssetReferences;using UnityEngine;
AudioClip clip = AssetReferences.Get<AudioClip>("audio-hit-impact");
if (AssetReferences.TryGet("prefab-boss-enemy", out GameObject prefab)){ Object.Instantiate(prefab);}Documented methods
Section titled “Documented methods”| Method | Purpose |
|---|---|
Exists(string id) |
Returns true when an enabled reference exists. |
IsLoaded(string id) |
Checks whether a Direct asset is cached or Streamed asset loaded. |
Get(string id) |
Resolves a Unity object or returns null. |
Get<T>(string id) |
Resolves a typed Unity object or returns null. |
TryGet(string id, out Object asset) |
Resolves an object and reports success. |
TryGet<T>(string id, out T asset) |
Resolves a typed object and reports success. |
GetAsync<T>(string id) |
Performs an asynchronous typed resolve. |
TryGetEntry(string id, out AssetReferenceEntry entry) |
Gets repository metadata. |
GetAll() |
Returns registered enabled entries. |
Preload(string id) |
Starts loading a Streamed asset. |
Release(string id) |
Releases a loaded Streamed asset. |
ReleaseAll() |
Releases all loaded Streamed handles. |
RebuildCache() |
Rebuilds runtime lookup state. |
Direct entries are documented as synchronous serialized references. Streamed entries load through
Addressables, with GetAsync<T> available to custom asynchronous flows. Disabled entries are
skipped during cache initialization.
Runtime events
Section titled “Runtime events”AssetReferences.Resolved += args =>{ Debug.Log($"Resolved {args.Id}: {args.Asset}");};
AssetReferences.Missing += args =>{ Debug.LogWarning($"Missing Asset Reference: {args.Id}");};Runtime events include:
ResolvedStreamedLoadedReleasedMissing
It says each event receives AssetReferenceEventArgs with Id, Entry, Asset, and LoadMode.
Game Creator variable helpers
Section titled “Game Creator variable helpers”using GameCreator.Runtime.Variables;using SkywardGames.AssetReferences.GameCreator;using UnityEngine;
public sealed class ReferenceVariableExample : MonoBehaviour{ [SerializeField] private LocalNameVariables variables;
private void Start() { AssetReferenceVariables.Set(this.variables, "current-music", "audio-menu-theme");
if (AssetReferenceVariables.TryGet(this.variables, "current-music", out AudioClip clip)) { Debug.Log($"Resolved {clip.name}"); } }}Verification checklist
Section titled “Verification checklist”Verify against the distributed assembly:
SkywardGames.AssetReferencesandSkywardGames.AssetReferences.GameCreator;- every overload, generic constraint, return type, and null behavior;
AssetReferenceEntryvisibility and members;- whether synchronous getters can initiate Streamed loading;
GetAsync<T>’s exact return type and failure behavior;- event names, static lifetime, argument type, and firing order;
- preload/release reference counting and handle ownership;
RebuildCachesafety and intended use; andAssetReferenceVariablesoverloads for local and global name variables.

