Version: 2019.4
런타임 시 리소스 로드
에셋에 폴더별로 기본값 적용

스트리밍 에셋

Unity는 프로젝트를 빌드할 때 대부분의 에셋을 하나의 프로젝트로 결합합니다. 그러나 때로는 파일을 타겟 컴퓨터의 일반 파일시스템에 저장하여 경로명을 통해 액세스할 수 있도록 하는 편이 유용합니다. iOS 디바이스에 동영상 파일을 배포할 때가 바로 그러한 예입니다. PlayMovie 함수를 통해 재생하기 위해서는 오리지널 동영상 파일이 반드시 파일시스템의 특정 위치에서 사용 가능해야 합니다.

Unity는 Unity 프로젝트에 StreamingAssets (대소문자 구분)라는 이름의 폴더에 위치한 모든 파일을 타겟 컴퓨터의 특정 폴더에 그대로 복사합니다. 이 폴더를 검색하려면 Application.streamingAssetsPath 프로퍼티를 사용하십시오. StreamingAssets 폴더의 위치를 확인하려면 항상 Application.streamingAssetsPath를 사용하는 것이 좋습니다. 이것은 항상 애플리케이션이 실행되고 있는 플랫폼에 있는 해당 위치를 정확하게 가리킵니다.

Application.streamingAssetsPath에서 반환하는 위치는 플랫폼마다 다릅니다.

  • 대부분의 플랫폼(Unity 에디터, Windows, Linux 플레이어, PS4, Xbox One, Switch)은 Application.dataPath + "/StreamingAssets"를 사용합니다.
  • macOS 플레이어는 Application.dataPath + "/Resources/Data/StreamingAssets"를 사용합니다,
  • iOS는 Application.dataPath + "/Raw"를 사용합니다.
  • Android는 압축된 APK/JAR 파일 내에 있는 파일을 사용합니다("jar:file://" + Application.dataPath + "!/assets").

스트리밍 에셋 파일에 직접 액세스할 수 없는 Android, WebGL 등의 플랫폼에서 스트리밍 에셋을 읽으려면 UnityWebRequest를 사용하십시오. 관련 예제는 Application.streamingAssetsPath를 참조하십시오.

대부분의 플랫폼에서 스트리밍 에셋 폴더 위치는 읽기 전용이며, 런타임 시점에 여기에서 새 파일을 수정하거나 작성할 수 없습니다. 쓰기 가능한 폴더 위치는 Application.persistentDataPath을 사용하십시오.

참고: StreamingAssets 폴더의 .dll 및 스크립트 파일은 스크립트 컴파일에 포함되지 않습니다.

에셋 번들 또는 어드레서블은 일반 게임 빌드 데이터에 속하지 않은 콘텐츠에 액세스할 수 있는 또 다른 방법으로, 많은 경우 스트리밍 에셋 폴더보다 더 선호됩니다.

런타임 시 리소스 로드
에셋에 폴더별로 기본값 적용