물리엔진 최적화
· 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 |