Table of Contents

Class AssetSystem

Namespace
Framework.Systems.Asset
Assembly
Assembly-CSharp.dll
public sealed class AssetSystem : IAssetSystem
Inheritance
object
AssetSystem
Implements

Constructors

AssetSystem(AssetCache, ConfigCache, IJsonSerializer)

public AssetSystem(AssetCache assetCache, ConfigCache configCache, IJsonSerializer serializer)

Parameters

assetCache AssetCache
configCache ConfigCache
serializer IJsonSerializer

Methods

Dispose()

public void Dispose()

InstantiateAsync(string, CancellationToken)

키 기반 로드 + Instantiate. IAssetHandle.Release() 로 해제. using var 패턴 지원 (IDisposable).

public UniTask<Result<IAssetHandle>> InstantiateAsync(string key, CancellationToken ct = default)

Parameters

key string
ct CancellationToken

Returns

UniTask<Result<IAssetHandle>>

InstantiateAsync(AssetReference, CancellationToken)

AssetReference 기반 로드 + Instantiate.

public UniTask<Result<IAssetHandle>> InstantiateAsync(AssetReference assetReference, CancellationToken ct = default)

Parameters

assetReference AssetReference
ct CancellationToken

Returns

UniTask<Result<IAssetHandle>>

InstantiateAsync<T>(string, CancellationToken)

키 기반 로드 + Instantiate + 컴포넌트 직접 반환. Component가 없으면 Fail 반환.

public UniTask<Result<IAssetHandle<T>>> InstantiateAsync<T>(string key, CancellationToken ct = default) where T : Component

Parameters

key string
ct CancellationToken

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 + 컴포넌트 직접 반환.

public UniTask<Result<IAssetHandle<T>>> InstantiateAsync<T>(AssetReference assetReference, CancellationToken ct = default) where T : Component

Parameters

assetReference AssetReference
ct CancellationToken

Returns

UniTask<Result<IAssetHandle<T>>>

Type Parameters

T

IsCached(string)

해당 키의 에셋이 캐시에 존재하는지 확인.

public bool IsCached(string key)

Parameters

key string

Returns

bool

LoadAsync<T>(string, CancellationToken)

키 기반 에셋 비동기 로드. 캐시 히트 시 즉시 반환.

public UniTask<Result<T>> LoadAsync<T>(string key, CancellationToken ct = default) where T : Object

Parameters

key string
ct CancellationToken

Returns

UniTask<Result<T>>

Type Parameters

T

LoadAsync<T>(AssetReference, CancellationToken)

AssetReference 기반 에셋 비동기 로드.

public UniTask<Result<T>> LoadAsync<T>(AssetReference assetReference, CancellationToken ct = default) where T : Object

Parameters

assetReference AssetReference
ct CancellationToken

Returns

UniTask<Result<T>>

Type Parameters

T

LoadConfigAsync<T>(string, CancellationToken)

JSON Config 비동기 로드. StreamingAssets/{key}.json 기준.

public UniTask<Result<T>> LoadConfigAsync<T>(string key, CancellationToken ct = default) where T : class

Parameters

key string
ct CancellationToken

Returns

UniTask<Result<T>>

Type Parameters

T

LoadConfig<T>(string)

ScriptableObject Config 동기 로드. Resources/{key} 기준.

public Result<T> LoadConfig<T>(string key) where T : ScriptableObject

Parameters

key string

Returns

Result<T>

Type Parameters

T

PreloadAsync(IEnumerable<string>, CancellationToken)

복수 키 병렬 사전 로드. 개별 실패가 있어도 전체 중단 없이 각 Result를 반환.

public UniTask<Result[]> PreloadAsync(IEnumerable<string> keys, CancellationToken ct = default)

Parameters

keys IEnumerable<string>
ct CancellationToken

Returns

UniTask<Result[]>

PreloadAsync(string, CancellationToken)

단일 키 사전 로드. 이후 LoadAsync는 캐시에서 즉시 반환. 씬 진입 시점(OnEnterAsync)에서 호출 권장.

public UniTask<Result> PreloadAsync(string key, CancellationToken ct = default)

Parameters

key string
ct CancellationToken

Returns

UniTask<Result>

Release(string)

키 기반 에셋 해제. AudioClip / Sprite 등 Instantiate 없이 로드한 에셋에 사용. 중복 호출 / 미존재 키 → Warning, 예외 없음.

public void Release(string key)

Parameters

key string

ReleaseAll()

로드된 모든 에셋 해제.

public void ReleaseAll()