기능
PC에서는 원할한 구동이 되었지만, 모바일에서는 그렇지 않았다. 그렇기에 1. 오클루전 컬링 2. 라이트 맵핑 3. 오브젝트 풀링등을 이용해 GC를 최대한 적게 호출하였다.
※ 참고 사항
1. 오클루전 컬링 : 카메라에 보이지 않는 오브젝트의 렌더링을 비활성화 시켜 랜더링할 오브젝트 수를 줄인다.
1-1 오클루디 : 다른 오브젝트를 가리지 않는 투명한 소재거나 가리는 영역이 매우 작은 오브젝트
2. 라이트매핑 : 라이트매핑은 씬의 표면 밝기를 미리 계산 Batch의 수를 줄여준다. 특정 맵에서 조명(실시간 조명 제외)을 사용하는 경우 라이트 매핑을 이용한다.
3. 오브젝트 풀링 : Instantiate과 Destroy의 경우 GC를 호출하게된다. 그렇기에 생성/제거를 하는 오브젝트들은 SetActive를 통해 생성/제거한 것 처럼 보여주자.
4. 기타 등등 : 문자열 readonly을 사용하고, 박싱과 언박싱 최소화, 문자열 병합시 StringBuilder 활용
4-1 문자열 병합에서 짧은 횟수를 더할때는 오히려 '+' 기호를 이용하는 것이 효율적이다. 다만 단어가
길거나, 반복의 경우 StringBuilder가 효율적이다.
코드
구현 영상
리펙토링
'유니티 > 3D RPG' 카테고리의 다른 글
22 던전 시스템 (0) | 2020.06.09 |
---|---|
21 스킬 시스템 (0) | 2020.06.08 |
19 아이템 드래그/드랍 (0) | 2020.06.06 |
18 비헤이비어 트리 (0) | 2020.01.20 |
17 퀘스트 시스템 (0) | 2020.01.16 |
댓글