에셋 호스팅 서비스
Hosting Services는 어드레서블 에셋 설정 데이터를 사용하여 통합 기능을 제공하는 개발 툴로, Unity 에디터 내에서 로컬 또는 네트워크에 연결된 애플리케이션 빌드에 패킹된 콘텐츠를 제공합니다. Hosting Services는 패킹된 콘텐츠를 테스트할 때 반복 속도를 개선할 수 있으며, 로컬 및 원격 네트워크에서 연결된 클라이언트에 콘텐츠를 제공할 수도 있습니다.
패킹 모드 테스트 및 반복
에디터 플레이 모드 테스트에서 플랫폼 애플리케이션 빌드 테스트로 전환하면 개발 프로세스에서 복잡성이 늘어나고 시간 비용도 발생합니다. Hosting Services는 확장이 가능하며 어드레서블 그룹 설정에 직접 매핑되는 에디터 내장 콘텐츠 제공 서비스를 제공합니다. 커스텀 어드레서블 프로파일을 사용하면 Unity 에디터 자체에서 모든 콘텐츠를 로드하도록 애플리케이션을 설정할 수 있습니다. 여기에는 개발 시스템에 대한 네트워크 액세스 권한이 있는 모바일 디바이스 또는 기타 플랫폼에 배포된 빌드가 포함됩니다.
에셋 호스팅 서비스 설정
이 설정 가이드에서는 에디터 워크플로에 중점을 두지만, API를 사용하면 AddressableAssetSettings
클래스의 HostingServicesManager
프로퍼티를 설정하여 Hosting Services를 구성할 수 있습니다.
신규 호스팅 서비스 설정
Hosting 창을 사용하여 신규 Hosting Services를 추가, 설정 및 활성화하십시오.
- Addressables Hosting 창을 엽니다. Window > Asset Management > Addressables > Hosting으로 이동하거나, Tools > Window > Hosting Services 버튼을 Addressables Groups 창 메뉴에서 클릭합니다.
- Create > Local Hosting 버튼을 선택하여 새로운 로컬 호스팅 서비스를 추가합니다. 커스텀 호스팅 서비스 유형을 구현하기 위한 더 자세한 내용은 커스텀 서비스 섹션을 참조하십시오.
- 새롭게 추가된 서비스가 Addressables Hosting 창의 Hosting Services 섹션에 표시됩니다. Service Name 필드를 사용하여 서비스 이름을 입력합니다.
- 새로운 서비스는 기본적으로 비활성화된 상태입니다. 서비스를 시작하려면 Enable 체크박스를 선택합니다.
- 서비스가 시작되면 HTTP 호스팅 서비스가 자동으로 포트 번호를 할당합니다. 포트 번호는 저장되며 Unity 세션 간에 재사용됩니다. 다른 포트를 선택하려면 Port 필드에서 특정 포트 번호를 할당하거나 Reset 버튼을 클릭하여 다른 무작위 포트 번호를 할당합니다.
에디터 2022.1 이상 버전에서는 HTTP 다운로드가 기본적으로 허용되지 않습니다. 기본 HTTPHostingService
가 올바르게 작동하도록 하려면 Edit > Project Settings > Player > Other Settings > Allow downloads over HTTP에서 Allow downloads over HTTP 설정을 Not allowed가 아닌 다른 옵션으로 설정해야 합니다.
포트 번호를 재설정하면 전체 애플리케이션 빌드를 실행하여 올바른 URL을 생성 및 포함해야 합니다. 모바일이나 다른 디바이스로부터의 연결을 허용하려면 로컬 방화벽을 비활성화하거나 예외를 추가해야 할 수 있습니다.
이졔 HTTP 호스팅 서비스가 활성화되었으며 각 에셋 그룹의 원격 BuildPath
에서 지정된 디렉토리를 통해 콘텐츠를 제공할 수 있습니다.
호스팅 서비스 프로파일 설정
개발 중에 호스팅 서비스로 작업할 때는 호스팅 서비스에서 로드하도록 에셋 그룹을 설정하는 프로파일을 생성하는 것이 좋습니다. 프로파일에 대한 자세한 내용은 어드레서블 에셋 프로파일을 참조하십시오.
Addressables Profiles 창에서 Create > Profile을 통해 새 프로파일을 생성합니다. 다음 예시에서는 새 프로파일 이름이 Editor Hosted로 지정됩니다.
호스팅 서비스에서 로드할 수 있도록 원격 로딩 URL을 수정합니다. Addressables Hosting 창에서는 원격 LoadPath 변수의 [PrivateIpAddress]
및 [HostingServicePort]
필드를 사용하여 경로 URL을 구성할 수 있습니다(예: http://[PrivateIpAddress]:[HostingServicePort]
).
각 그룹이 올바르게 설정되어 있는지 확인하십시오. BuildPath
및 LoadPath
경로를 호스팅 서비스에서 사용하도록 수정한 각 프로파일 키로 설정해야 합니다.
[!팁] Path Preview 를 사용하여 프로파일 변수가 올바른 변수로 설정된 것을 확인합니다. 로드 경로 URL IP 주소 및 포트는 Addressables Hosting 창의 서비스와 일치해야 합니다.
마지막으로 Addressables Groups 창에서 새 프로파일을 선택하고 빌드를 만든 다음 타겟 디바이스에 배포합니다. 이제 Unity 에디터가 HttpHostingService
서비스를 통해 애플리케이션의 모든 로드 요청을 처리합니다. 재배포 없이도 추가 및 변경 사항을 콘텐츠에 적용할 수 있습니다. 어드레서블 콘텐츠를 다시 빌드하고 이미 배포된 애플리케이션을 다시 실행하여 콘텐츠를 새로 고치십시오.
배치 모드
Hosting Services를 사용하여 배치 모드로 실행 중인 Unity 에디터에서 콘텐츠를 제공할 수도 있습니다. 이렇게 하려면 커맨드 라인에서 다음 옵션을 사용하여 Unity를 실행합니다.
-batchMode -executeMethod UnityEditor.AddressableAssets.HostingServicesManager.BatchMode
이제 기본 AddressableAssetSettings
오브젝트에서 Hosting Services 설정이 로드되며, 설정된 모든 서비스가 시작됩니다.
대체 AddressableAssetSettings
설정을 사용하려면 자체 정적 메서드 엔트리 포인트를 만들어 `HostingServicesManager.BatchMode 오버로드를 통해 호출합니다.
커스텀 서비스
커스텀 서비스를 생성하여 어드레서블 에셋 시스템에서 콘텐츠 로딩 요청을 처리하기 위한 자체 로직을 구현할 수 있습니다. 예제:
- 콘텐츠 다운로드에 비 HTTP 프로토콜을 사용하는 커스텀
IResourceProvider
를 지원합니다. - 프로덕션 CDN 솔루션(예: Apache HTTP 서버)과 일치하는 콘텐츠를 제공하기 위한 외부 프로세스를 관리합니다.
커스텀 서비스 구현
HostingServicesManager
는 IHostingService
인터페이스를 구현하는 모든 클래스를 관리할 수 있습니다.
새 커스텀 서비스를 만들려면 다음 단계를 따르십시오.
- 위의 신규 호스팅 서비스 설정 섹션에 나와 있는 단계를 따르되, Create > Local Hosting 버튼이 아닌 Create > Custom Service 버튼을 선택합니다.
- 해당하는 스크립트를 필드에 드래그하거나 오브젝트 피커에서 선택합니다. 다이얼로그를 통해 선택한 스크립트가
IHostingService
인터페이스를 구현함을 확인할 수 있습니다. - 서비스 추가를 마치려면 Add 버튼을 클릭합니다.
앞으로는 커스텀 서비스가 Service Type 드롭다운 옵션에 표시됩니다.