오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 44일차(ResourceManager 클래스 사용하는법)
Addressables를 사용하는 ResourceManager 클래스
ResourceManager 클래스를 사용하는 방법을 작성하지 않은것 같아서 이번기회에 작성할려고 합니다.
아래의 링크를 확인하면 코드의 전문을 확인할 수 있습니다.
오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 34 & 35일차 땜빵( Addressable을 이용하여 리소스매니저 만들기) (tistory.com)
ResourceManager 클래스 소개
ResourceManager 클래스는 Unity의 Addressables 시스템을 활용하여 리소스을 효율적으로 로드하고 관리합니다. 이 클래스는 비동기 로딩, 동기 로딩, 그리고 프리팹 인스턴스화 등 다양한 기능을 제공합니다.
주요 기능
- 비동기 로드: 리소스을 비동기적으로 로드하고, 로드가 완료되면 콜백을 실행합니다.
- 동기 로드: 필요할 때 즉시 리소스을 로드합니다.
- 프리팹 인스턴스화: 로드된 프리팹을 인스턴스화합니다.
- 리소스 언로드: 사용하지 않는 리소스를 언로드하여 메모리를 해제합니다.
비동기 로드 방법
LoadAsync 메서드를 사용하여 리소스을 비동기적으로 로드합니다. 이 메서드는 리소스의 키를 인자로 받고, 로드가 완료된 후 실행할 콜백을 옵셔널 인자로 받습니다.
// 예시: 스프라이트 비동기 로드 resourceManager.LoadAsync<Sprite>("spriteKey", sprite => { // 여기에서 sprite를 사용합니다. });
동기 로드 방법
Load 메서드를 사용하여 리소스을 동기적으로 로드합니다. 이 메서드는 리소스의 키를 인자로 받고, 로드된 리소스을 반환합니다.
// 예시: 프리팹 동기 로드 GameObject prefab = resourceManager.Load<GameObject>("prefabKey");
프리팹 인스턴스화
InstantiatePrefab 메서드를 사용하여 프리팹을 인스턴스화합니다. 이 메서드는 프리팹의 키와 선택적으로 부모 트랜스폼을 인자로 받습니다.
// 예시: 프리팹 인스턴스화 GameObject instance = resourceManager.InstantiatePrefab("prefabKey", parentTransform);
리소스 언로드 방법
UnloadAllAsync 메서드를 사용하여 특정 라벨에 속한 모든 리소스을 비동기적으로 언로드합니다. 이 메서드는 라벨을 인자로 받
습니다.
// 예시: 특정 라벨의 모든 리소스 언로드 resourceManager.UnloadAllAsync<GameObject>("label");
결론
ResourceManager 클래스는 Unity의 Addressables 시스템을 활용하여 리소스의 로드와 관리를 효율적으로 수행합니다. 이 클래스를 사용함으로써 리소스 관리를 더욱 유연하고 효율적으로 할 수 있습니다.