Resources 폴더    [원본 링크]


확인 완료한 버전 2017.3 - 난이도: 고급


이 문서는 유니티 AssetBundles 및 Resources 가이드의 3번째 챕터 입니다.


이 챕터에서는 Resources 시스템에 대해 설명합니다. 이것은 개발자가 Resources 라고 이름 지은 하나 이상의 폴더에 Asset들을 저장하고 Resources API를 이용하여 Asset들에서 Object들을 런타임 상에서 로드하고 언로드 하는 시스템 입니다.




2.1 Resources 시스템에 대한 모범 사례


사용하지 마세요.


사용하지 않도록 권장하는 이유는 다음과 같습니다.


● Resources 폴더를 사용하면 세분화 된 메모리 관리가 더욱 어려워집니다.

● 부적절한 Resources 폴더 사용 시 어플리케이션 시작 시간과 빌드 시간이 길어집니다.

- Resources 폴더의 수가 증가하면 폴더 내의 Asset 관리가 어려워집니다.

● Resources 시스템은 특정 플랫폼에 맞춰진 콘텐츠 제공 을 위한 프로젝트의 역량을 감소시키며 차후 콘텐츠 업데이트 가능성을 손실시킵니다.

- AssetBundle Variant는 장치 단위로 콘텐츠를 조절 할 수 있는 유니티의 기본 도구 입니다.




2.2 Resources 시스템의 적절한 사용


Resources 시스템이 도움이 되는 두가지 구체적인 예가 있습니다.


1. Resources 폴더의 쉬운 사용법은 빠르게 프로토 타입을 만들 때 용이합니다. 하지만 프로젝트가 본격적으로 시작된다면 사용하지 않아야 합니다.


2. Resources 폴더는 다음과 같이 사소한 경우에는 유용 할 수 있습니다:

● 프로젝트 전체에서 일반적으로 필요한 경우

● 메모리를 많이 사용하지 않음

● 패치가 발생하지 않거나 플랫폼이나 장치에 따라 다르지 않을 경우

● 최소한의 부트스트랩에 사용




2.3 Resources의 직렬화


Resources 폴더 내부의 Asset 및 Object들은 프로젝트가 빌드 될 때 하나의 직렬화 된 파일로 결합됩니다. 이 파일은 AssetBundle과 같이 metadata와 인덱싱 정보를 포함하고 있습니다. AssetBundle 문서에서 설명한 것 처럼 이 인덱스는 주어진 Object의 이름을 파일 GUID와 로컬 ID로 변환 하는데 사용되는 직렬화 된 검색 트리를 포함합니다. 이는 직렬화 된 파일 내부의 특정 바이트 오프셋에서 Object의 위치를 찾는데 사용됩니다.


대부분의 플랫폼에서 데이터 검색 구조는 균형 탐색 트리이며. O(n log(n))의 속도로 증가하는 구축 시간을 가집니다. 이 증가로 인해 인덱스 로딩 시간은 Resources 폴더에 있는 Object가 늘어날수록 선형적으로 증가합니다.


이 작업은 건너 뛸 수 없으며 초기 조작 불가능한 시작화면이 표시되는 어플리케이션 시작 시 발생합니다. Resources 폴더에 포함된 Object들이 어플리케이션의 첫 씬에 거의 필요가 없더라도 10000개의 Asset을 포함하는 Resources 시스템을 초기화 하는데 낮은 사양의 모바일 장치에서는 수 초의 시간이 걸립니다.

'유니티' 카테고리의 다른 글

유니티의 컴파일  (0) 2019.03.14
AssetBundle의 사용 패턴  (0) 2018.03.09
AssetBundle의 기본 요소  (0) 2018.03.07
Assets, Objects 그리고 직렬화  (0) 2018.03.04
AssetBundles 및 Resources 가이드  (0) 2018.03.03

+ Recent posts