EveryDay.DevUp

[Unity] Unity 에디터에서 개발 속도 개선 Tip ( PlayMode, Asset Import, Device Simulator ) 본문

Unity

[Unity] Unity 에디터에서 개발 속도 개선 Tip ( PlayMode, Asset Import, Device Simulator )

EveryDay.DevUp 2020. 5. 21. 23:40

이 게시물은 Unity Korea에서 Dev week 로 공유된 워크플로우 관련 개선 사항에 대한 내용을 정리하였습니다.

● Playmode 개선

: 게임 개발 시, 게임의 기능 또는 컨텐츠를 개발 한 뒤 유니티의 플레이 모드를 통해 테스트를 진행하게 되는데 현재 열린 씬의 복잡도에 따라 플레이 모드로 들어가는 시간이 비례하여 증가하게 된다.

[ Play Mode상태 ]

▶ 플레이 모드 플로우 

[ ProjectSetting -> Editor Mode -> Play Mode 속도 개선 옵션 ]

: 기존 플레이 모드에서는 도메인 리로드와 씬리로드에서 오버헤드의 80~90%가 발생

=> 도메인 리로드 ( 씬에 있는 스크립트의 디시리얼라이징/시리얼라이징, 어셈 블리의 재로드 ), 씬 리로드 ( 씬에 있는 오브젝트들을 파괴하고 로컬에서 다시 로드 ) 에서 파일 입출력이 발생하기 때문

: 해당 옵션을 사용하면 도메인 리로드와 씬 리로드를 하지 않고 씬의 정보만 리셋하기 때문에 속도가 개선 됨

▶ 해당 옵션 사용 시 이슈

: 정식 릴리즈 버전은 아니기 때문에 버그가 발생할 수 있음

: Static의 경우 씬이 리로드 되는 것이 아니기 때문에 기존 값이 유지되는 이슈가 있음

=> static위에 속성 값으로 [InitializeOnEnterPlayMode] 와 같은 것을 정의 해야함


어셋 임포트 파이프라인 V2

[ ProjectSetting -> Editor Mode -> Asset Pipeline ]

: 어셋 임포트는 Unity에 C#, Model, png 등을 추가 했을 때 Unity에서 사용할 수 있는 데이터 변경하는 작업을 말함

: 어셋 임포트 파이프 라인의 개선은 단기 적인 개선이 아닌, 장기적인 계획 아래 진행되는 개선 작업

: 기존의 어셋 임포트 파이프 라인을 리팩토링을 통해 속도를 향상 시킴

: 구조적으로 많은 부분이 변경되어 V1과는 호환이 되지 않음

▶ V2 사용 시의 이슈

: 기존의 유니티 캐시 서버를 사용할 수 없고 유니티 엑셀레이터라는 솔루션을 사용해야만 함

● 플랫폼 변환 시의 속도 향상

: Unity를 2019.3으로 업데이트 하면 자동으로 적용

: Unity 에서 타겟 플랫폼을 변경하는 경우, 기존의 시스템은 라이브러리 폴더에 해당 플랫폼에 맞는 데이터를 덮어쓰는 방식. 이로인해 이미 만들어졌던 데이터가 사라졌음

: 변경된 방식은 라이브러리에 데이터를 만들 때 버전과 플랫폼 정보를 넣어서 타겟 플랫폼을 변경해도 기존에 만들어둔 데이터가 사라지지 않고 남는 방식. 이로인해 플랫폼이 변경되어 기존 데이터를 사용할 수 있게 됨으로써 속도가 개선 됨

: 사용하지 않는 데이터는 Unity가 열릴 때 갱신되면서 삭제되게 됨

● 에디터에서 디바이스 시뮬레이터 사용

[ Package Manager -> Device Simulator ]
[ 설치 후 메뉴를 통해서 사용 ]
[ 디바이스 시뮬레이터의 모습 ]

: 디바이스 시뮬레이터를 사용하면, 빌드를 하지 않고도 단말기에 따른 해상도 및 Safe Area를 확인 할수 있음

: 대표적인 단말기들이 제공되지만, 없는 경우 커스터마이징을 통해 자신만의 단말기 추가가 가능

: $Project/Library/PackageCache/com.unity.device-simulator@2.2.2-preview/.DeviceDefinitions를 보면 json과 png가 쌍으로 만들어져 있음을 볼 수 있는데, json과 png를 복사해서 자신만의 디바이스를 설정한 폴더에 넣음

[ Device 정보를 복사 해서 자신만의 디바이스를 생성 ]
[ 만든 폴더를 Device Simulator에 연결 ]
[ 목록에 추가된 커스텀 디바이스 ]

참고 자료 : https://www.youtube.com/watch?v=Kel7NIP2AOg

참고 자료 : https://docs.unity3d.com/Packages/com.unity.device-simulator@2.2/manual/index.html

 

Introduction | Device Simulator | 2.2.2-preview

Introduction Device Simulator is an alternative to the traditional Unity editor Game window. By simulating Screen and SystemInfo class behavior, Device Simulator aims to give an accurate picture of how an app will look on a device. Requirements Compatible

docs.unity3d.com