반응형
어떻게 보면 모든 게임 프로그래밍의 기본이 될 수도 있는데 한 프레임내의 연산을 최소화해야 초당 프레임 수가 보장됩니다. 유니티에서는 한 프레임 내에서 실행하는 함수가 Update입니다. Update내에서 코드를 작성할 때 아래와 같은 사항을 조심해야 합니다.
우선 항상 같은 값을 찾는 경우는 멤버 변수에 캐시하여 놓아 한번만 찾고 그 뒤로는 캐시된 값을 이용하도록 만들어야 합니다. 저와 같은 경우 설정 파일을 로딩하여 설정 사항을 가지고 있는 설정 관련 객체를 가지고 있었습니다. 그런데 업데이트시 저장된 설정 값을 가져올 때 항상 설정 관련 객체에서 검색이 일어나서 성능 저하가 있었습니다. 결국 한번 검색한 설정 관련 사항은 멤버 변수에 가지도록 하여 검색을 줄여 성능 향상을 하였습니다.
new로 객체 생성을 최소화 시킵니다. 프레임마다 new를 사용하는 것은 객체 생성 부하도 있고 프레임 내에서만 사용하고 다시 new를 해야하는 경우 더 이상 사용되지 않는 객체들로 인하여 가비지 컬렉션으로 인한 시간을 증가시킵니다. 가급적 미리 생성된 객체를 사용하는 것이 좋습니다.
GetComponent나 GameObject.Find와 같이 비싼 연산의 함수는 사용을 최소화해야 합니다. 개발하다보면 어쩔 수 없이 사용해야 하는게 이런 함수들입니다. 이런 경우에는 가급적 미리 멤버 변수 등에 캐시하여 놓고 캐시하여 놓은 값을 사용하도록 하여야 합니다.
반응형
'개발 라이브러리 & 툴 > 유니티' 카테고리의 다른 글
Unity iOS 크래시 그리고 Exception (0) | 2022.01.11 |
---|---|
Unity FPS 체크 소스 (1) | 2022.01.03 |
Unity 최적화: 모바일 파티클 매터리얼 (0) | 2022.01.01 |
Unity 최적화: 안드로이드 LG V10 vs Samsung S7 (0) | 2021.12.30 |
Unity 안드로이드 개발시 알아두면 좋은 것들 (0) | 2021.12.27 |
Unity 안드로이드 빌드 시 화면 멈춤(Freezing) 현상 해결 (0) | 2021.12.26 |
Unity 여러 개의 카메라를 이용하여 여러 개의 포스트 이펙트 적용하기 (0) | 2021.12.03 |
Unity 개발시 편집 중인 텍스트나 csv파일 데이터를 게임에서 읽기 (0) | 2021.11.26 |