Addressable 학습 코스 링크
어드레서블(Addressables) 시스템 스터디 노트 5화에서는, 스크립트를 사용하여 어드레서블 에셋을 게임에 로드하고 언로드할 때, 다양한 에셋 타입들에 대한 처리 예시를 다룹니다.
오브젝트 선택기(object picker)가 스프라이트만 선택할 수 있도록 제한하려면 AssetReference 대신 AssetReferenceSprite를 사용.
씬(Scene) 에셋도 어드레서블 API 로 로드할 수 있음.
AsyncOperationHandle<SceneInstance>
m_SceneLoadOpHandle = Addressables.LoadSceneAsync("LoadingScene", activateOnLoad: true);
아래는 기존 코드
SceneManager.LoadSceneAsync("LoadingScene") 을 아래 코드로 교체.
public static void LoadNextLevel()
{
//SceneManager.LoadSceneAsync("LoadingScene");
m_SceneLoadOpHandle = Addressables.LoadSceneAsync("LoadingScene", activateOnLoad: true);
}
Scene 로드 관련 코드도 아래처럼 Legacy 대신 Addressables 코드로 교체
모두 적용한 뒤 테스트. 아래처럼 잘 동작.
"참조 카운팅"(Reference counting)
어드레서블 스크립팅 코스의 마지막.
어드레서블 시스템의 장점들 중 하나는 메모리 안팎에서 에셋의 로딩과 언로딩을 관리할 수 있다는 점. 내부적으로 참조 카운팅 시스템을 통해 이루어지며, 이 시스템은 리소스가 공유되는 방식을 관리할 뿐만 아니라 리소스가 실제로 메모리에서 로드 및 언로드되는 시기도 결정.
AsyncOperationHandle을 보관한 다음 작업 결과가 더 이상 필요하지 않을 때 핸들을 다시 Addressables 시스템으로 전달하기만 하면 됨. 실제 로딩과 언로딩은 Addressables 시스템이 처리.
샘플 게임에서 Roady 의 모자를 랜덤하게 바꿔 쓰도록 동적 로드/언로드 하도록 코드를 수정한 뒤에 테스트. 메모리 프로파일러로 살펴봤을 때, 모자를 계속해서 바꿔 써도 Objects stats 에 변화가 거의 없는 것을 확인.
다음은?
다음 유니티 어드레서블 학습 코스에서는 빌드 과정을 다룹니다.
Addressable 학습 코스 링크
Unity 2021 버전, 유니티 교과서
https://link.coupang.com/a/ZgsN8
(본문 링크로 유니티 교과서 구입 시, 일정액의 수수료를 제공받습니다. 감사합니다.)
Unity Asset Store
https://prf.hn/click/camref:1011lvz7h/pubref:store/destination:https%3A%2F%2Fassetstore.unity.com%2F
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
어드레서블 시작하기(Get started with Addressables) 스터디 노트 9화 "그룹 스키마" (1) | 2023.05.31 |
---|---|
어드레서블 시작하기(Get started with Addressables) 스터디 노트 8화 "프로파일" (0) | 2023.05.31 |
어드레서블 시작하기(Get started with Addressables) 스터디 노트 7화 "프로파일" (0) | 2023.05.29 |
어드레서블 시작하기(Get started with Addressables) 스터디 노트 4화 "어드레서블 스크립트 코딩" (0) | 2023.05.27 |
어드레서블 시작하기(Get started with Addressables) 스터디 노트 3화 "Addressable 등록하기" (0) | 2023.05.26 |
어드레서블 시작하기(Get started with Addressables) 스터디 노트 2화 "어드레서블을 써야만 하는 이유" (2) | 2023.05.26 |
어드레서블 시작하기(Get started with Addressables) 스터디 노트 1화 (0) | 2023.05.25 |