일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 단말기 해상도
- 프레임워크
- Dots
- Framework
- Custom Package
- 샘플
- Unity Editor
- TextMeshPro
- job
- 다이나믹 폰트
- jumping ball
- DotsTween
- AES
- 텍스트 메시 프로
- RSA
- 이미지 폰트
- ui
- unity
- base64
- 암호화
- adfit
- sha
- C#
- 2D Camera
- 가이드
- Dynamic Font
- Job 시스템
- 커스텀 패키지
- Tween
- 최적화
- Today
- Total
EveryDay.DevUp
[Unity] Unity 에디터에서 개발 속도 개선 Tip ( PlayMode, Asset Import, Device Simulator ) 본문
[Unity] Unity 에디터에서 개발 속도 개선 Tip ( PlayMode, Asset Import, Device Simulator )
EveryDay.DevUp 2020. 5. 21. 23:40
이 게시물은 Unity Korea에서 Dev week 로 공유된 워크플로우 관련 개선 사항에 대한 내용을 정리하였습니다.
● Playmode 개선
: 게임 개발 시, 게임의 기능 또는 컨텐츠를 개발 한 뒤 유니티의 플레이 모드를 통해 테스트를 진행하게 되는데 현재 열린 씬의 복잡도에 따라 플레이 모드로 들어가는 시간이 비례하여 증가하게 된다.
▶ 플레이 모드 플로우
: 기존 플레이 모드에서는 도메인 리로드와 씬리로드에서 오버헤드의 80~90%가 발생
=> 도메인 리로드 ( 씬에 있는 스크립트의 디시리얼라이징/시리얼라이징, 어셈 블리의 재로드 ), 씬 리로드 ( 씬에 있는 오브젝트들을 파괴하고 로컬에서 다시 로드 ) 에서 파일 입출력이 발생하기 때문
: 해당 옵션을 사용하면 도메인 리로드와 씬 리로드를 하지 않고 씬의 정보만 리셋하기 때문에 속도가 개선 됨
▶ 해당 옵션 사용 시 이슈
: 정식 릴리즈 버전은 아니기 때문에 버그가 발생할 수 있음
: Static의 경우 씬이 리로드 되는 것이 아니기 때문에 기존 값이 유지되는 이슈가 있음
=> static위에 속성 값으로 [InitializeOnEnterPlayMode] 와 같은 것을 정의 해야함
● 어셋 임포트 파이프라인 V2
: 어셋 임포트는 Unity에 C#, Model, png 등을 추가 했을 때 Unity에서 사용할 수 있는 데이터 변경하는 작업을 말함
: 어셋 임포트 파이프 라인의 개선은 단기 적인 개선이 아닌, 장기적인 계획 아래 진행되는 개선 작업
: 기존의 어셋 임포트 파이프 라인을 리팩토링을 통해 속도를 향상 시킴
: 구조적으로 많은 부분이 변경되어 V1과는 호환이 되지 않음
▶ V2 사용 시의 이슈
: 기존의 유니티 캐시 서버를 사용할 수 없고 유니티 엑셀레이터라는 솔루션을 사용해야만 함
● 플랫폼 변환 시의 속도 향상
: Unity를 2019.3으로 업데이트 하면 자동으로 적용
: Unity 에서 타겟 플랫폼을 변경하는 경우, 기존의 시스템은 라이브러리 폴더에 해당 플랫폼에 맞는 데이터를 덮어쓰는 방식. 이로인해 이미 만들어졌던 데이터가 사라졌음
: 변경된 방식은 라이브러리에 데이터를 만들 때 버전과 플랫폼 정보를 넣어서 타겟 플랫폼을 변경해도 기존에 만들어둔 데이터가 사라지지 않고 남는 방식. 이로인해 플랫폼이 변경되어 기존 데이터를 사용할 수 있게 됨으로써 속도가 개선 됨
: 사용하지 않는 데이터는 Unity가 열릴 때 갱신되면서 삭제되게 됨
● 에디터에서 디바이스 시뮬레이터 사용
: 디바이스 시뮬레이터를 사용하면, 빌드를 하지 않고도 단말기에 따른 해상도 및 Safe Area를 확인 할수 있음
: 대표적인 단말기들이 제공되지만, 없는 경우 커스터마이징을 통해 자신만의 단말기 추가가 가능
: $Project/Library/PackageCache/com.unity.device-simulator@2.2.2-preview/.DeviceDefinitions를 보면 json과 png가 쌍으로 만들어져 있음을 볼 수 있는데, json과 png를 복사해서 자신만의 디바이스를 설정한 폴더에 넣음
참고 자료 : https://www.youtube.com/watch?v=Kel7NIP2AOg
참고 자료 : https://docs.unity3d.com/Packages/com.unity.device-simulator@2.2/manual/index.html
'Unity' 카테고리의 다른 글
[Unity] Addressable Asset System ( 어드레서블 어셋 시스템 ) (0) | 2020.05.24 |
---|---|
[Unity] ScriptableObject ( 스크립터블 오브젝트) (0) | 2020.05.22 |
[Unity] Unity Render Pipeline (렌더 파이프라인) - Built IN (0) | 2020.05.19 |
[Unity] Tween 비교 ( ITween, DoTween, Animation, MonoBehaviour ) (0) | 2020.05.11 |
[Unity] 스플래시 화면 ( Splash Screen ) (0) | 2020.05.10 |