Unity

Unity Addressables의 개념과 실전 적용 방법

anvil925 2025. 4. 17. 22:17
728x90
반응형

Unity Addressables의 개념과 실전 적용 방법

Unity에서 리소스를 효율적으로 관리하기 위한 방법 중 하나가 바로 Addressables 시스템입니다. Addressables은 기존의 Resources AssetBundle 방식의 단점을 보완하며, 런타임에서 동적으로 리소스를 로드하고 메모리 관리를 보다 효과적으로 수행할 수 있게 도와주는 Unity의 공식 시스템입니다.


Addressables이란?

Addressables은 Unity의 에셋 관리 시스템으로, 리소스들을 **"주소 기반"**으로 쉽게 로딩하고 관리할 수 있게 해줍니다. 사용자는 각 에셋에 고유 주소를 부여하고, 이를 통해 코드에서 쉽게 접근할 수 있습니다.

주요 장점

  • Resources 폴더의 대체
  • 런타임 동적 로딩 및 언로딩 가능
  • AssetBundle보다 사용이 간편
  • 메모리 최적화
  • 클라우드 배포도 가능 (Remote Hosting)

기본 설정 방법

  1. 패키지 설치
    • Unity Package Manager에서 Addressables 패키지를 설치합니다.
  2. Addressable Group 만들기
    • 프로젝트 창에서 리소스에 우클릭 > Addressable 체크 > 그룹 설정
  3. 주소 이름 설정
    • Addressables 윈도우에서 각 에셋의 이름을 지정하거나 자동 할당된 주소를 사용

런타임 로딩 예제

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public class LoadPrefab : MonoBehaviour
{
    public string prefabAddress = "MyUIPrefab";

    void Start()
    {
        Addressables.LoadAssetAsync<GameObject>(prefabAddress).Completed += OnPrefabLoaded;
    }

    void OnPrefabLoaded(AsyncOperationHandle<GameObject> handle)
    {
        if (handle.Status == AsyncOperationStatus.Succeeded)
        {
            Instantiate(handle.Result);
        }
    }
}

리소스 해제 방법

Addressables.Release(handle);

메모리 누수 방지를 위해 LoadAssetAsync 후에는 반드시 Release 해주는 습관이 필요합니다.


주의할 점 및 팁

  • 비동기 로딩이므로 async-await 방식과 함께 쓰면 더 깔끔한 코드를 작성할 수 있습니다.
  • 에셋의 참조 관계가 꼬이지 않도록 주의해야 합니다. Addressables 그룹 간 종속성도 확인하세요.
  • Remote Hosting을 사용할 경우, CDN 설정이나 버전 관리를 신경 써야 합니다.
  • 개발 중 Build > New Build > Default Build Script를 자주 해줘야 적용 사항이 반영됩니다.

Addressables vs Resources vs AssetBundle

항목ResourcesAssetBundleAddressables

편의성 매우 쉬움 번들화 필요 중간 (툴 지원)
빌드 사이즈 커짐 최적화 가능 최적화 + 관리 쉬움
런타임 로딩 가능 가능 가능 + 주소 기반
권장 여부 (비권장) (고급용) (권장)

 

Addressables은 이제 Unity에서 리소스를 효율적으로 다루기 위한 사실상 표준입니다. 초기 설정만 잘 해두면, 런타임에서 리소스를 동적으로 로딩하고 메모리도 깔끔하게 관리할 수 있어 대규모 프로젝트에서 특히 유용합니다.

 Addressables 기반 리소스 관리로 전환해보는 것을 적극 추천

728x90
반응형