2021/05 4

[Unity] Unity 최적화 공부(4)

프로그래밍 & 코드 아키텍쳐 Fixed Timestep project settings > Time > Fixed Timestep이 있다. 이는 물리적 연산주기를 의미한다. Update()는 매 프레임마다 호출되며 FixedUpdate는 물리적 연산 주기마다 호출된다. 이는 targetFrameRate를 맞추는 것이 좋다. 만약 timestep이 0.02 이라면 1초에 50번 돌아간다. 이걸 잘 맞추는 것을 간과하면 안된다. 이러한 targetFrameRate는 장르 별, 상황 별로 조절해야 한다. 예로 들어, 퍼즐 게임 같은 경우는 연산 주기가 빠를 필요가 없을 것이다. Adaptive Performance(Youtube 검색) 가변적으로 performance를 실시간으로 적절하게 변경 가능 비동기 로딩..

Unity 2021.05.16

[Unity] Unity 최적화 공부(3)

GPU Profiling GPU는 일부 플랫일부 플랫폼에서만 프로파일링이 가능하므로 GPU를 프로파일링하기 어렵다. 특히 대부분의 모바일 플랫폼에서는 Unity Profiler에 있는 GPU Usage를 사용할 수 없다. 따라서 모바일에서 GPU를 프로파일링할 때는 Bandwidth를 제공해주는 툴을 사용하거나 SnapDragon이나 Xcode같은 툴들을 사용하는 수밖에 없다. Fillrate 의미: GPU가 1 초에 픽셀에 매핑 할 수있는 텍스처 맵 요소의 수를 의미 Fillrate = (화면의 픽셀) x (프래그먼트쉐이더 복잡도) x (오버드로우) 요즘은 모바일 기기의 해상도가 높다보니 Fillrate가 부하되는 경우가 많다. PlayerSetting > Resolution Scaling의 Targe..

Unity 2021.05.13

[Unity] Unity 최적화 공부(2)

Unity Profiler 프로파일링을 도와주는 Unity 내의 Tool로, Window > Analysis > Profiler 에 있다. 이와 관련된 정식 문헌은 아래 링크를 참조하기를 바란다. https://docs.unity3d.com/kr/2018.4/Manual/ProfilerWindow.html 프로파일러 창 - Unity 매뉴얼 Unity 에디터에서 툴바를 통해 프로파일러 창에 액세스합니다. Window > Analysis > Profiler. docs.unity3d.com Profiler 창에서 성능 분석을 할 때, Hierachy와 Timeline 속성을 선택할 수 있다. Hierachy는 어떤 기능을 실행할 때, CPU/GPU를 어느 정도 차지하는지를 퍼센트로 보여주고 Timeline은..

Unity 2021.05.12

[Unity] Unity 최적화 공부(1)

유니티 최적화 타이밍 및 고려해야 할 점 Target Platform 및 Device를 정확하게 설정해야 한다. 프로토타입을 만드는 과정에서는 최적화를 할 것이 아니라 기능 구현에 초점을 맞추어야 한다. 프로파일링을 하면서 문제점을 파악한 후, 최적화를 해야 한다. 프로파일링과 최적화는 개발 막바지가 아닌 프로덕션 개발 과정 중간중간에 자주 해줘야 한다. 프로파일링 프로파일링이란, 병목탐지와 병목 제거의 순환 과정이다. 리소스들이 몰리는 지점을 탐지하고 이를 제거하는 것이 중요하다. 병목 제거는 추측이 아닌 프로파일링에 의한 근거를 가지고 임해야 한다. 프로파일링 주의 사항 추측에 의한 최적화 금지 디버거 / 프로파일러 툴의 적극적인 활용 유니티 에디터에서의 프로파일링은 단순 참고용 타겟 플랫폼에서의 프..

Unity 2021.05.12