Interface IAssetSystem
에셋 로드 / Config 로드 / Instantiate / 해제 단일 진입점.
public interface IAssetSystem
Remarks
[금지] Addressables 직접 호출. [금지] 매직 스트링 키. AssetKeys / ConfigKeys 상수 사용. [규칙] InstantiateAsync → IAssetHandle.Release() 또는 using var 패턴. [규칙] AudioClip / Sprite 등 Instantiate 불필요 에셋은 Release(key) 직접 호출.
Methods
InstantiateAsync(string, CancellationToken)
키 기반 로드 + Instantiate. IAssetHandle.Release() 로 해제. using var 패턴 지원 (IDisposable).
UniTask<Result<IAssetHandle>> InstantiateAsync(string key, CancellationToken ct = default)
Parameters
keystringctCancellationToken
Returns
- UniTask<Result<IAssetHandle>>
InstantiateAsync(AssetReference, CancellationToken)
AssetReference 기반 로드 + Instantiate.
UniTask<Result<IAssetHandle>> InstantiateAsync(AssetReference assetReference, CancellationToken ct = default)
Parameters
assetReferenceAssetReferencectCancellationToken
Returns
- UniTask<Result<IAssetHandle>>
InstantiateAsync<T>(string, CancellationToken)
키 기반 로드 + Instantiate + 컴포넌트 직접 반환. Component가 없으면 Fail 반환.
UniTask<Result<IAssetHandle<T>>> InstantiateAsync<T>(string key, CancellationToken ct = default) where T : Component
Parameters
keystringctCancellationToken
Returns
- UniTask<Result<IAssetHandle<T>>>
Type Parameters
T
Examples
var result = await _asset.InstantiateAsync<EnemyView>(AssetKeys.Enemy.Prefab);
if (!result.IsSuccess) return;
result.Value.Component.Initialize();
InstantiateAsync<T>(AssetReference, CancellationToken)
AssetReference 기반 로드 + Instantiate + 컴포넌트 직접 반환.
UniTask<Result<IAssetHandle<T>>> InstantiateAsync<T>(AssetReference assetReference, CancellationToken ct = default) where T : Component
Parameters
assetReferenceAssetReferencectCancellationToken
Returns
- UniTask<Result<IAssetHandle<T>>>
Type Parameters
T
IsCached(string)
해당 키의 에셋이 캐시에 존재하는지 확인.
bool IsCached(string key)
Parameters
keystring
Returns
- bool
LoadAsync<T>(string, CancellationToken)
키 기반 에셋 비동기 로드. 캐시 히트 시 즉시 반환.
UniTask<Result<T>> LoadAsync<T>(string key, CancellationToken ct = default) where T : Object
Parameters
keystringctCancellationToken
Returns
- UniTask<Result<T>>
Type Parameters
T
LoadAsync<T>(AssetReference, CancellationToken)
AssetReference 기반 에셋 비동기 로드.
UniTask<Result<T>> LoadAsync<T>(AssetReference assetReference, CancellationToken ct = default) where T : Object
Parameters
assetReferenceAssetReferencectCancellationToken
Returns
- UniTask<Result<T>>
Type Parameters
T
LoadConfigAsync<T>(string, CancellationToken)
JSON Config 비동기 로드. StreamingAssets/{key}.json 기준.
UniTask<Result<T>> LoadConfigAsync<T>(string key, CancellationToken ct = default) where T : class
Parameters
keystringctCancellationToken
Returns
- UniTask<Result<T>>
Type Parameters
T
LoadConfig<T>(string)
ScriptableObject Config 동기 로드. Resources/{key} 기준.
Result<T> LoadConfig<T>(string key) where T : ScriptableObject
Parameters
keystring
Returns
- Result<T>
Type Parameters
T
PreloadAsync(IEnumerable<string>, CancellationToken)
복수 키 병렬 사전 로드. 개별 실패가 있어도 전체 중단 없이 각 Result를 반환.
UniTask<Result[]> PreloadAsync(IEnumerable<string> keys, CancellationToken ct = default)
Parameters
keysIEnumerable<string>ctCancellationToken
Returns
- UniTask<Result[]>
PreloadAsync(string, CancellationToken)
단일 키 사전 로드. 이후 LoadAsync는 캐시에서 즉시 반환. 씬 진입 시점(OnEnterAsync)에서 호출 권장.
UniTask<Result> PreloadAsync(string key, CancellationToken ct = default)
Parameters
keystringctCancellationToken
Returns
- UniTask<Result>
Release(string)
키 기반 에셋 해제. AudioClip / Sprite 등 Instantiate 없이 로드한 에셋에 사용. 중복 호출 / 미존재 키 → Warning, 예외 없음.
void Release(string key)
Parameters
keystring
ReleaseAll()
로드된 모든 에셋 해제.
void ReleaseAll()