.claude/skills/asset-module/SKILL.md
AssetModule reference — Addressable asset loading with caching, instantiation tracking, and preloading with progress. Use when working with asset loading, Addressables, or resource management.
npx skillsauth add punkfuncgames/tetris-clone asset-moduleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Package: com.punkfuncgames.asset | Define: PUNKFUNC_ASSET
Location: Packages/com.punkfuncgames.asset/Runtime/PunkFuncGames.Asset/
Namespace: PunkFuncGames.Asset
Loading:
UniTask<T> LoadAssetAsync<T>(string key, ct) — load by Addressable address (cached)UniTask<T> LoadAssetAsync<T>(AssetReference reference, ct) — load by AssetReference (cached by GUID)UniTask<IList<T>> LoadAssetsAsync<T>(string label, ct) — load all by labelInstantiation:
UniTask<GameObject> InstantiateAsync(string key, Transform parent, ct)UniTask<GameObject> InstantiateAsync(AssetReference reference, Transform parent, ct)Release:
Release<T>(T asset) — release loaded assetReleaseInstance(GameObject instance) — release instantiated objectPreloading:
UniTask PreloadAssetsAsync(string label, IProgress<float> progress, ct) — download + preload by labelCleanup:
UniTask UnloadUnusedAssetsAsync() — Resources.UnloadUnusedAssets() + GC.Collect()No dependencies. Caching via Dictionary<string, AsyncOperationHandle>.
"label:{label}"AssetInstaller.Install(builder);
// Registers: AssetService (Singleton) as IAssetService
// Load asset by key
GameObject prefab = await _assetService.LoadAssetAsync<GameObject>("EnemyPrefab", ct);
// Load by AssetReference (from inspector)
Sprite sprite = await _assetService.LoadAssetAsync<Sprite>(spriteReference, ct);
// Instantiate
GameObject enemy = await _assetService.InstantiateAsync("EnemyPrefab", parent, ct);
// Release when done
_assetService.ReleaseInstance(enemy);
_assetService.Release(prefab);
// Preload with progress
Progress<float> progress = new Progress<float>(p => Debug.Log($"Loading: {p:P0}"));
await _assetService.PreloadAssetsAsync("GameplayAssets", progress, ct);
development
WalletModule reference — currency management with BigDouble support, reactive properties, caps, lifetime stats, and persistence. Use when working with currencies, wallets, or financial systems.
development
UnlockConditionModule reference — composable unlock conditions using ScriptableObjects with AND/OR/NOT logic, stat/currency/upgrade/prestige/gamestate/boolean checks, reactive service layer with progress tracking. Use when implementing unlock systems, gating, or progression requirements.
development
UndoModule reference — command pattern with undo/redo stacks, command merging, and reactive state. Use when implementing undo/redo, undoable actions, or command patterns.
tools
Unity UI Toolkit reference — UXML documents, USS styling, MVVM pattern (ViewModel + Presenter), custom VisualElements, responsive layout, animations, performance guidelines, and complete Figma-to-UI-Toolkit property mapping. Use when building or modifying UI with UI Toolkit, creating UXML/USS files, writing ViewModels or Presenters, designing screens/panels/components, or converting Figma designs to UI Toolkit.