어드레서블(Addressables)
어드레 서블(Addressables)은 예전의 에셋번들(AssetBundle)을 대체하는 에셋 관리 시스템으로 리소스들의 주소(위치)를 지정해서 고유하게 로드 및 방식을 분리가 가능하다.
추가로 런타임 메모리 관리도 좀 더 편리하게 된다고 한다.
[Window]-[Assets Management]-[Addressables] 메뉴를 선택하면 어드레서블 메뉴가 노출된다.
반응형
어드레서블을 체크하고 이름(ball)을 지정이 가능하다.
어드레서블 지원은 Unity 2018 LTS~ 이상부터 지원을 한다고 한다.
어드레서블을 로드해서 처리되는 코드는 대략 다음과 같다.
void OnButtonClick()
{
if(string.IsNullOrEmpty(addressToAdd))
Debug.LogError("Address To Add not set.");
else
{
if (m_ReadyToLoad)
Addressables.LoadSceneAsync(addressToAdd, LoadSceneMode.Additive).Completed += OnSceneLoaded;
else
{
Addressables.UnloadSceneAsync(m_LoadedScene).Completed += OnSceneUnloaded;
}
}
}
void OnSceneUnloaded(AsyncOperationHandle<SceneInstance> obj)
{
if (obj.Status == AsyncOperationStatus.Succeeded)
{
textArea.text = "Reload " + addressToAdd;
m_ReadyToLoad = true;
m_LoadedScene = new SceneInstance();
}
else
{
Debug.LogError("Failed to unload scene at address: " + addressToAdd);
}
}
void OnSceneLoaded(AsyncOperationHandle<SceneInstance> obj)
{
if (obj.Status == AsyncOperationStatus.Succeeded)
{
textArea.text = "Unload " + addressToAdd;
m_LoadedScene = obj.Result;
m_ReadyToLoad = false;
}
else
{
Debug.LogError("Failed to load scene at address: " + addressToAdd);
}
}
Unity Blog : [링크]
Unity Korea Blog : [ 링크 ]
Addressable Asset Doc : [링크]
★☆☆☆☆
반응형
'개발 > Unity' 카테고리의 다른 글
Unity) URP(Universal Render Pipeline) 셰이더 사용하는 방법 (3) | 2021.04.30 |
---|---|
Unity)점진적 가비지 컬렉션 (User Incremental GC) (0) | 2021.04.26 |
Unity)해결)VisualStudio)CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. (0) | 2021.04.12 |
Unity) InGame Debug Console Plugin 적용 (0) | 2021.04.10 |
Unity) Android Permission 안드로이드 권한 설정 (0) | 2021.04.07 |
댓글