Game Development, 게임개발/Unity

Unity Asset Workflow - 유니티 에셋 워크플로

게임이 더 좋아 2023. 11. 24. 23:25
반응형
728x170

Unity Asset Workflow

AssetBundle?

모델, 텍스처, 프리팹, 오디오클립, 씬 등의 애셋의 묶음, 파일 아카이브

애셋번들을 이용하여 런타임에서 애셋 로드 후 사용 가능(런타임 메모리 최적화)

타겟 플랫폼에 맞게 애셋 최적화 가능

AssetBundle 형태

  • bundle : 에셋번들 파일
  • bundle.manifest : 포함된 Asset Meta info, Dependency, Hash, CRC 등 정보들을 나타내는 파일

AssetBundle의 개수?

너무 많음

→ 메모리 사용량 증가, 로딩 시간 증가, 대용량 다운로드

너무 적음

→ 빌드 시간 증가, 개발 과정 복잡, 다운로드 시간 증가

AssetBundle 이 갖는 Manifest?

순환 중복 검사(CRC) 데이터 등과 같은 번들에 대한 정보를 포함

(포함된 에셋, 종속성, 그리고 메타 정보)

번들의 Manifest에 접근하여 여러가지 정보를 이용하여 커스텀 다운로더 설정 가능

CRC는 애셋 번들의 무결성 및 보안을 체크하는데 사용함

로컬의 CRC 값과 서버의 CRC 값이 일치하지 않으면 에셋은 로드되지 않음

AssetBundle이 패치하는 방식

Default :

  • 현재 다운로드 된 에셋 번들과 각각의 버전 정보 리스트 또는 Hash128 값
  • 서버에 있는 에셋 번들과 각각의 버전 정보 리스트 또는 Hash128 값

**1)**버전 정보 또는 Hash128 값이 다른 번들, **2)**새로 생겨난 번들, **3)**사라진 번들, **4)**수정된 번들에 대해서 다시 CDN을 기준으로 다운 받게 됨

Unity에서는 Diff 패치를 Built-in으로 제공하지 않으며 Compression 방식도 정해져 있음

UniteSeoul2018

Custom Patch

DownloadHandler를 통해

  • Manifest의 version, CRC 참고하여 해당 번들 다운로드 결정할 수 있음
  • 사용자가 원하는 JSON과 같은 여러 표준 데이터 포맷을 이용하여 패치 진행 가능

많은 서드 파티 프로그램이 애셋패치를 Binary Diff로 제공함과 동시에 Compression 방식도 다름

UniteSeoul2018

Client Workflow

1)현재 클라이언트에서 CDN에 있는 업데이트 정보와 현재의 정보 비교

  1. manifest 파일 변경사항 확인
  2. 해당 애셋 번들에 대한 다운로드 실행

Default vs Custom

Default : 번들 버전이 다를 경우 기존 것을 삭제하고 번들 전체를 다시 다운로드 받음

Custom : 번들 버전이 다를 경우 기존 것과 Diff 해서 번들 다운로드 가능

Custom Patch의 경우 구현하는 로직에 따라 달라짐

하지만 Default인 경우에도 번들을 잘 나누어 관리한다면 충분히 효율적임

Addressable?

Asset을 더 효율적으로 관리하기 위해 Unity에서 제공하는 시스템

AssetBundle을 한 번 래핑하여 개발자의 편의성을 고려함

  • 자동 번들 의존성 체크
  • 애셋 빌드,배포 단순화
  • 개발에 따른 코드 변경 최소화

서드파티(Binary Diff)

대부분 Binary Diff Algorithm를 이용하여 패치 진행함

참고

https://www.youtube.com/watch?v=Lx61ZEKEvnQ

https://www.youtube.com/watch?v=Z9LrkQUDzJw

https://www.youtube.com/watch?v=Lx61ZEKEvnQ

https://www.youtube.com/watch?v=yoBzTpJYN44

https://www.youtube.com/watch?v=EP3pvPAcHSo&t=2425s

https://learn.unity.com/tutorial/assets-resources-and-assetbundles#5c7f8528edbc2a002053b5a9

 

반응형
그리드형