✅ 어드레서블 기본 개념
- Addressables 패키지를 설치합니다 (Unity Package Manager에서 설치 가능).
- Addressables 그룹에 에셋을 등록합니다.
- 에셋에 주소(Address) 를 부여한 뒤, 코드에서 그 주소를 이용해 로드합니다.
📂 1. 단일 파일 로드하기
단일 파일은 텍스처, 프리팹, 사운드 등 개별 오브젝트를 직접 로드할 때 사용합니다.
📌 예시: 프리팹 로드 후 인스턴스화
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class SingleAssetLoader : MonoBehaviour
{
[SerializeField] private string prefabAddress = "MyPrefab"; // Addressables 창에서 설정한 주소
void Start()
{
Addressables.LoadAssetAsync<GameObject>(prefabAddress).Completed += OnLoaded;
}
private void OnLoaded(AsyncOperationHandle<GameObject> handle)
{
if (handle.Status == AsyncOperationStatus.Succeeded)
{
GameObject prefab = handle.Result;
Instantiate(prefab, Vector3.zero, Quaternion.identity);
}
else
{
Debug.LogError("Failed to load prefab");
}
}
}
📁 2. 그룹화된 파일 (에셋 리스트) 로드하기
그룹화된 에셋은 태그나 라벨(Label)을 붙여 여러 에셋을 한 번에 불러올 수 있습니다.
✅ 준비
Addressables 창에서 여러 에셋을 선택하고, Label(라벨) 을 예: "EnemyPrefabs" 로 지정합니다.
📌 예시: 라벨로 여러 프리팹 로드하기
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class GroupAssetLoader : MonoBehaviour
{
[SerializeField] private string label = "EnemyPrefabs";
void Start()
{
Addressables.LoadAssetsAsync<GameObject>(label, null).Completed += OnGroupLoaded;
}
private void OnGroupLoaded(AsyncOperationHandle<IList<GameObject>> handle)
{
if (handle.Status == AsyncOperationStatus.Succeeded)
{
IList<GameObject> prefabs = handle.Result;
for (int i = 0; i < prefabs.Count; i++)
{
Instantiate(prefabs[i], new Vector3(i * 2f, 0, 0), Quaternion.identity);
}
}
else
{
Debug.LogError("Failed to load group of prefabs");
}
}
}
💡 참고
- 비동기 방식이기 때문에 로딩 중 UI 처리 등을 함께 고려해야 합니다.
- 사용 후 Addressables.Release() 를 호출하여 메모리에서 해제해주는 것이 좋습니다.
- 번들 사이즈 최적화, 원격 로드, 업데이트 등을 Addressables로 쉽게 구현할 수 있습니다.
'부트캠프 > Unity [ 스파르타 ]' 카테고리의 다른 글
[스파르타 ][TIL] 유니티 스파르타 7기 43일차 - Status관리법 (0) | 2025.04.09 |
---|---|
[스파르타 ][TIL] 유니티 스파르타 7기 42일차 - PointerEventData (4) | 2025.04.08 |
[스파르타 ][TIL] 유니티 스파르타 7기 39일차 - 전략패턴 (0) | 2025.03.19 |
[스파르타 ][TIL] 유니티 스파르타 7기 38일차 - 쿼터니언에 대해서 (0) | 2025.03.17 |
[스파르타 ][TIL] 유니티 스파르타 7기 37일차 - Inverse Kinematics (0) | 2025.03.14 |