유니티 엔진/유니티 엔진의 구성

유니티 엔진의 구성 - 17) Resources

monstro 2026. 2. 3. 11:19
728x90
반응형

- 개요

유니티에서 일반적인 애셋들Scene에서 참조될 때 자동 로드되지만

Resource 기능을 사용하면 런타임 중에 코드로 에셋을 직접 로드할 수 있다

해당 기능을 사용하기 위해서는 애셋은 반드시 "Resources" 이름의 폴더에 저장되어 있어야 한다

 

- Resource의 사용방법

Resource 폴더의 구성 (1)

 

Resource 폴더의 구성 (2)

 

위와 같이 Resource 폴더를 구성하였다

 

 

시험해볼 코드의 구성은 위와 같다

Resource 폴더에서 애셋을 로드하는 방식은 총 3가지가 존재한다

  • Load<T>() : 특정 애셋을 로드
  • LoadAll<T>() : 특정 경로의 모든 애셋을 로드 
  • LoadAsync<T>() : 특정 애셋을 비동기 로드

 

예제에서 사용하지는 않았지만 로드된 애셋을 메모리에서 해제하여 최적화하는 것도 가능하다

  • UnloadAsset() : 사용하지 않는 특정 애셋을 메모리에서 해제
  • UnloadAssets() : 사용하지 않는 모든 애셋을 메모리에서 해제

 

스크립트는 위와 같이 구성하여 Load 함수와 LoadAsync 함수를 사용한다

  • ResourceCube 애셋과 ResourceSphere 애셋은 애셋의 이름애셋의 경로를 넘겨주어 로드
  • ResourceCapsule 애셋은 애셋의 이름을 넘겨주어 비동기 로드
    • 이때 비동기 로드가 완료되면 콜백 함수를 호출하여 로드된 애셋을 출력

 

 

최종 실행 결과는 위와 같다

ResourceCube 애셋과 ResourceCapsule 애셋은 로드한 후에 Instantiate 함수를 호출하여 생성하였고,

ResourceCapsule 애셋은 로드된 후에 이름이 출력된 것을 확인할 수 있다

 

- Resource의 장단점

최종적으로 Resource의 장단점을 정리하면 다음과 같다

  • 장점 : 직접적인 인스펙터 참조 없이 경로명만으로 에셋에 즉시 접근 가능 + 런타임애셋 로드가 가능
  • 단점 : 빌드의 크기가 증가 + 대형 애셋은 로딩에서 불리함 + 남용하면 메모리에 영향을 줌
728x90
반응형