디지털 양피지/Unity3D2015. 1. 13. 10:21



Physics

 - 불필요한 Collision Volume을 최소화한다.

  : 복잡한 형태의 오브젝트인 경우에도 가능하면 Box Collider 하나로 충돌 볼륨 설정


- 가능한 간단한 형태의 충돌 볼륨 사용

 : 부하 - Mesh Collider > Box Collider > Sphere Collider


- 충돌이 겹치는 경우 유의

  : 프레임당 반복해서(많은 경우 3회) 충돌 처리 발생.


- CharacterController 개수가 많은 경우 Performance 저하

  : Rigid Body 와 Collider를 사용하면 좋다.


- Fixed Update 함수 최정화

- TimeManager 설정 값 수정

 : Edit > Project > Time 메뉴 

  게임에 맞게 설정하는게 좋다. Fixed Update 등을 조절하여 줄이는 것도 좋은 방법이 될 수 있다.


General

- Caching

  : Transform, GetComponent 등은 게임 루프에서 호출하지 않고 캐싱해서 사용


- 매 프레임마다 계산할 필요가 없는 코드들

 : GUI 버튼의 상태 체크, AI 등

 : 매 10 프레임마다 계산하는 것과 같은 방법으로 호출 회수 최소화


- 미리 계산된 테이블을 사용

  : sin/cos/sqrt 등은 비용이 많이 듬 계산 된 Table을 사용하자.


- GC(Garbage Collection)

  : Profiler 에서 CPU spike가 심하게 발생하는 경우

  : 적절한 곳에서 System.GC.Collect() 를 호출


- 메모리 사용

  :  Resources.UnloadUnusedAssets 를 호출 불필요한 메모리를 해제한다.


- Instantiate 사용 자제 할 것

  : 비용이 비싼 함수이다. 미리 생성해 두고 재활용하는 것이 좋다 (disable/enable)


Profiler

 - Unity Profiler를 사용하여 Spike가 발생하는 부분을 관찰해서 조절해야 한다.

 - 



'디지털 양피지 > Unity3D' 카테고리의 다른 글

Unity3D - Gizmos 활용  (0) 2015.02.16
Unity3D - Sorting Layer 사용하기  (0) 2015.02.16
Unity3D - Animation & Mecanim  (0) 2015.02.13
Unity3D - Sprite(Sprite Editor)  (0) 2015.02.13
Unity Script Basic- 1  (0) 2015.01.07
Posted by 빨간 양말