본문 바로가기

최적화3

[Unity] 오브젝트 풀링을 간단히 구현해보자(ObjectPool) 다수의 오브젝트를 생성하고, 파괴하는 과정을 반복하면,GC가 빈번하게 작동하여, 성능 저하(또는 프레임 드랍)가 발생한다. 만약, 사용한 오브젝트를 재사용한다면CPU 성능 소모를 줄일 수 있을 것이다. 이를 오브젝트 풀링이라고 하는데, 유명한 최적화 기법 중 하나이다.유니티에서는 이 오브젝트 풀링을 간단히 구현할 수 있는ObjectPool 클래스를 지원한다. 예시를 간략히 살펴보도록 하자. 결과물위 이미지는 오브젝트 풀링의 결과를 보여준다.한번 사용한 큐브를 잠시 비활성화하고, 필요할 때에 다시 사용하는 것을 볼 수 있다. 핵심은 생성된 오브젝트가 파괴되지 않고 남아있다는 것이다.예시 코드using UnityEngine;using UnityEngine.UI;using UnityEngine.Pool;usi.. 2024. 5. 24.
[Unity] 최적화 기법 최적화 기법 - 움직이지 않는 정적 오브젝트에 Static Batching 적용 - Texture : Generate Mip maps 체크, Use Crunch Compression 체크 - 머터리얼의 Enable GPU Instancing 체크 - Oculusion Culling 기법 (x) - Project Settings, Lighting Settings - Input.GetTouch 와 Input.touchCount 대신 Input.touches 사용하기 - ref 키워드 사용 - Resolution and Presentation의 Use-32bit Display Buffer 비활성화 - Other Settings의 Enable Internal Profiler 비활성화 - 오브젝트를 하나로 묶고,.. 2021. 9. 14.
[Unity] 3ds Max로 오브젝트 병합하기 Unity 개발을 하다 보면, 개발자들이 고난을 겪는 작업은 최적화 작업일 것이다. 특히, 모바일 기기는 최적화가 제대로 이루어지지 않으면 흔히 프레임 드롭, 발열과 같은 문제가 발생한다. 최적화는 Sprite Atlas, TMP, Light Map, Scripting, Low Poly, Batching 등 많은 부분에서 이루어진다. 이러한 최적화가 이루어지면 메모리를 절약할 수 있고, 드로우 콜이나 연산 처리가 신속해진다. 이 포스트에서는 드로우 콜을 줄이는 방법 중 하나에 대해 다루려 한다. 드로우 콜은 CPU가 GPU에게 오브젝트를 그리라고 요청하는 횟수를 의미한다. 쉽게 말해 오브젝트 개수가 많고, 머터리얼의 개수가 많으면 느려진다는 것이다. 만약, 여러 오브젝트와 머터리얼이 하나로 병합된다면 드.. 2021. 6. 22.