기존 방식인 Resources는 런타임 리소스 관리에 한계가 있으며, 불필요한 메모리 사용이 발생함으로 Addressable로 변경
구조 진행 순서
1. GameManager, UIManager에 Async-await 적용 2. AddressableManager에 기능 모듈화 3. UIManager에서 비동기 동적 생성 후 딕셔너리에 저장 및 초기화
1. GameManager, UIManager 비동기(async) 처리
비동기 로딩을 하기 위해 각 Manager에서 async-await 구조 적용
UIManager에서 UI를 생성하는 UISetInit()을 비동기 실행
2. 어드레서블 그룹 세팅, Addressable 기능 모듈화
어드레서블 그룹 세팅에서 리소스 및 라벨 추가
Canvas를 먼저 생성하여 위치해야하므로 Canvas만 별도의 라벨을 가짐
어드레서블의 기능을 미리 모듈화
- 하나의 오브젝트를 생성하는 InstantiateAsync - 여러 리소스를 반환하는 LoadAssetsAsync - 하나의 리소스를 반환하는 LoadAssetAsync
여러 오브젝트를 생성하는 기능인 InstantateAsync
주의 사항 : Addressables.InstantiateAsync는 단일의 인스턴스 생성만 되기 때문에 라벨에 여러 인스턴스를 만들때는 Addressables.LoadResourceLocationAsync로 리소스들을 받은 다음 진행해야 문제 없이 인스턴스들이 생성이 됨
Addressable.LoadAssetsAsync로 하지 않은 이유 : Addressable.LoadAssetsAsync는 리소스 자체를 반환하는 것인데Addressables.InstnatiateAsync는 리소스의 위치를 매개변수로 받기 때문