Unity

[Unity] Addresable 어드레서블를 이용한 웹서버 원격 로드방법

usingsystem 2024. 3. 26. 14:41
728x90

어드레스블 에셋 시스템 설명

https://blog.unity.com/kr/games/addressable-asset-system

 

어드레서블 에셋 시스템 | Unity Blog

어드레서블의 주된 기능은 로드할 대상이 되는 에셋과 에셋이 로드되는 위치 및 방식을 분리하는 것입니다. 씬, 프리팹, 텍스트 에셋을 비롯한 모든 에셋을 어드레서블(위치 지정 가능)로 표시

blog.unity.com

어드레스블 메모리 최적화 설명

https://blog.unity.com/kr/technology/tales-from-the-optimization-trenches-saving-memory-with-addressables

 

어드레서블 에셋 시스템으로 메모리 최적화하기 | Unity Blog

위에서 발생한 문제를 해결하기 위해 앞서 생성한 세 번들에 들어가는 모든 요소를 고려해 보겠습니다. 번들에 배치한 것은 세 가지 프리팹이지만, 프리팹의 종속성으로 해당 번들에 암묵적으

blog.unity.com

어드레서블 에셋 시스템

어드레서블 에셋 시스템이란 address 로 asset을 load 할 수 있는 방법을 제공한다.

어드레서블은 로드할 대상이 되는 에셋과 에셋이 로드되는 위치를 분리하는 것이다.

에셋에 address를 부여하게 되면 에셋을 로드하는 측에서는 에셋의 address만 알면 되고 에셋의 실제 위치가 변경되어도 상관없다.

Resource에서 프리펩을 넣어두고 소스에서 Resource폴더의 프리펩 경로를 입력하여 개발하게 되면 나중에 프리펩의 폴더를 옮긴다면 소스를 모두 수정해야 한다. 하지만 어드레서블을 사용하면 에셋의 실제 위치가 변경되어도 상관없이 사용할 수 있다.

 

어드레서블 설치

package Manager에서 Packeges:Unity Registry로 변경검색창에 addressable 검색 후 Install

어드레서블을사용 하여 웹서버에 원격 업로드하기

Manage Profiles를 들어간다

새로운 Profile를 만든다.

Remote.BuildPath & Remote.LoadPath

미리만들어논 웹서버의 적절한 위치의 경로를 적는다.

  1. Remote.BuildPath:
    • Remote.BuildPath는 Addressable Asset System이 리소스를 빌드할 때 사용하는 경로입니다.
    • 이 경로는 원격 서버에 리소스를 빌드하여 배포하는 경우에 중요합니다. 예를 들어, 게임이 실행될 때 필요한 리소스를 원격 서버에서 다운로드할 수 있도록 빌드하는 경우, 이 경로가 사용됩니다.
    • 일반적으로 Remote.BuildPath는 웹서버나 CDN(Content Delivery Network)와 같은 원격 위치를 가리키는 경로입니다. 빌드된 리소스가 해당 원격 위치에 업로드되어야 합니다.
  2. Remote.Load Paths:
    • Remote.Load Paths는 게임 실행 중에 리소스를 로드할 때 사용되는 경로입니다.
    • 이 경로는 게임이 실행될 때 필요한 리소스를 실제로 다운로드하는 데 사용됩니다. 예를 들어, 게임이 실행되면 원격 서버에서 리소스를 다운로드하고 로컬에 캐시하여 사용자가 게임을 즐길 때 필요한 리소스에 접근할 수 있게 됩니다.
    • Remote.Load Paths는 Remote.BuildPath와 일치해야 합니다. 즉, 빌드된 리소스가 원격 위치에서 로드될 때 이를 찾을 수 있어야 합니다.

Addressable AssetSettings

새롭게 만든 Profile를 활성화한 후 상태를 보면 Path Preview에 위에 서 맞춘 설정값으로 변경되어있다.

Only Update Catalogs manually

이 설정이 활성화되면 Addressable Asset System이 자동으로 카탈로그를 업데이트하지 않고 수동으로만 업데이트할 수 있도록 설정됩니다. 이는 Addressable Asset System이 자동으로 리소스를 업데이트하지 않고 사용자가 명시적으로 업데이트하도록 제어할 때 유용합니다.

 

Play Mode Script

  1. Use Asset Database (faster):
    • 이 옵션은 플레이 모드에서 Addressable Asset를 로드할 때 Asset Database를 사용하여 더 빠른 로딩을 제공합니다.
    • Asset Database를 사용하면 Addressable Asset System이 빌드하지 않은 상태에서도 에셋을 효율적으로 로드할 수 있습니다.
    • 주로 개발 및 디버깅 중에 사용되며, 빠른 반복 및 테스트에 유용합니다.
  2. Simulate Groups (advanced):
    • 이 옵션은 플레이 모드에서 Addressable Asset System의 그룹 동작을 시뮬레이션하는 데 사용됩니다.
    • 그룹은 Addressable Asset System에서 리소스를 구성하는 주요 방법 중 하나이며, 각 그룹은 특정한 로드 및 업데이트 규칙을 가집니다.
    • 이 옵션을 활성화하면 플레이 모드에서 그룹의 동작을 시뮬레이션하여 그룹 로딩 및 업데이트 동작을 테스트할 수 있습니다.
  3. Use Existing Build (requires built groups):
    • 이 옵션은 플레이 모드에서 빌드된 그룹을 사용하여 Addressable Asset를 로드하는 데 사용됩니다.
    • 빌드된 그룹은 빌드 프로세스 중에 미리 빌드되고 패키징된 그룹입니다.
    • 이 옵션을 선택하면 미리 빌드된 그룹을 사용하여 Addressable Asset를 로드하므로, 게임 시작 시간을 최적화할 수 있습니다.

Build

      1.  
  1. settings.json:
    • settings.json 파일은 Addressable Asset System의 설정을 저장하는 JSON 형식의 파일입니다.
    • 이 파일에는 Addressable Asset System의 기본 설정 및 구성이 포함됩니다. 예를 들어, 리소스의 로드 경로, 그룹 설정, 플랫폼별 설정 등이 여기에 포함됩니다.
    • 이 파일을 통해 프로젝트의 Addressable Asset System 구성을 쉽게 관리하고, 필요한 경우 수정하거나 공유할 수 있습니다.
  2. catalog.json:
    • catalog.json 파일은 Addressable Asset System이 빌드된 Asset Catalog 정보를 저장하는 JSON 형식의 파일입니다.
    • 이 파일에는 빌드된 리소스의 메타데이터 및 주소 정보가 포함됩니다. 게임이 실행될 때 이 파일을 사용하여 Addressable Asset System이 리소스를 로드하고 관리합니다.
    • 주로 빌드된 리소스의 카탈로그 정보를 저장하고, 게임 실행 중에 이를 참조하여 리소스를 로드하는 데 사용됩니다.
  3. link.xml:
    • link.xml 파일은 Addressable Asset System의 리소스를 빌드하는 동안 Unity 컴파일러에게 추가 지시를 제공하는 XML 형식의 파일입니다.
    • 이 파일은 특정한 유니티 타입이 실제로 사용되지 않아도 빌드된 결과물에 포함되도록 하는 데 사용됩니다. 이를 통해 Addressable Asset System이 정확한 리소스를 빌드하고 게임에 포함시킬 수 있습니다.
    • 일반적으로 사용자가 직접 편집하는 경우는 적지만, 특정한 상황에서 유용하게 활용될 수 있습니다.

 

유용한 블로그

https://velog.io/@wjdgh9577/Unity-Addressable%EC%9D%98-catalog-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

[Unity] 로컬 에셋 번들을 외부에서 수정하기

카탈로그를 이용해 외부에서 에셋을 수정하는 방법에 대해 생각해보았다.

velog.io

https://medium.com/pinkfong/unity-addressable-asset-%EB%A5%BC-%EC%99%9C-3017f3fa2edc

 

[Unity] Addressable Asset을 왜?

이글은 Unity의 Addressable Asset 도입하는 과정 중, 도입 이유에 관한 글 입니다.

medium.com

 

728x90