본문 바로가기

Unity/Optimization

물리엔진 최적화

물리엔진 최적화


· Fixed Update 주기 조절(Update와 별도로 주기적으로 불리며 주로 물리 엔진 처리)

 - 디폴트는 0.02초, 즉 1초에 50번 호출

 - TimeManager에서 수정 가능

 - 게임에 따라 0.2초 정도(혹은 이상)로 수정해도 문제 없음


·  움직이지 않는 배경 물체는 static으로 설정


· 리지드 바디가 없는 고정 충돌체를 움직이면 CPU 부하 발생

 - 리지드 바디를 추가하고, IsKinematic 옵션 사용


· Maximum Allowed timestep 조정 - 시스템에 부하가 걸려 지정된 시간보다 오래 걸릴 경우,  

 물리 계산을 건너 뛰는 설정

· Solver Iteration Count 조정 - 물리 관련 계산을 얼마나 정교하게 할지 지정 (높을수록 정교)

 - Edit > Project Setting > Physics


· 리지드 바디의 속력이 설정된 값보다 작을 경우, 휴면 상태에 들어감.

 - Physics.Sleep() 함수를 이용하면, 강제 휴면 상태를 만들 수 있음.


· 랙돌은 물리 시뮬레이션 루프의 영역이 아니기 때문에, 꼭 필요할때만 활성화


· 물리 처리에서 레이어가 훨씬 유리. 성능과 메모리에서 장점을 가짐


· 매쉬 콜라이더는 절대 사용하지  않는다.


· 레이캐스트와 Sphere Check 같은 충돌 감지 요소를 최소화

· 2D 게임에서 타일맵의 Collision Mesh를 최적화

 - Tilemap을 디폴트로 사용해서, 각 타일별로 충돌 메쉬가 있는 경우, 물리 부하가 커진다.

 - 연결된 Tilemap을 하나의 Collision Mesh로 물리 연산을 최적화 하라

'Unity > Optimization' 카테고리의 다른 글

셰이더  (0) 2015.12.29
Lighting and Overdraw  (0) 2015.12.29
Batch  (0) 2015.12.29
그래픽스 최적화  (0) 2015.12.29
리소스 최적화  (0) 2015.12.29