개발 라이브러리 & 툴/유니티

Unity 최적화: Update 함수

하늘흐늘 2021. 12. 28. 17:12
반응형


어떻게 보면 모든 게임 프로그래밍의 기본이 될 수도 있는데 한 프레임내의 연산을 최소화해야 초당 프레임 수가 보장됩니다. 유니티에서는 한 프레임 내에서 실행하는 함수가 Update입니다. Update내에서 코드를 작성할 때 아래와 같은 사항을 조심해야 합니다.

우선 항상 같은 값을 찾는 경우는 멤버 변수에 캐시하여 놓아 한번만 찾고 그 뒤로는 캐시된 값을 이용하도록 만들어야 합니다. 저와 같은 경우 설정 파일을 로딩하여 설정 사항을 가지고 있는 설정 관련 객체를 가지고 있었습니다. 그런데 업데이트시 저장된 설정 값을 가져올 때 항상 설정 관련 객체에서 검색이 일어나서 성능 저하가 있었습니다. 결국 한번 검색한 설정 관련 사항은 멤버 변수에 가지도록 하여 검색을 줄여 성능 향상을 하였습니다.

new로 객체 생성을 최소화 시킵니다. 프레임마다 new를 사용하는 것은 객체 생성 부하도 있고 프레임 내에서만 사용하고 다시 new를 해야하는 경우 더 이상 사용되지 않는 객체들로 인하여 가비지 컬렉션으로 인한 시간을 증가시킵니다. 가급적 미리 생성된 객체를 사용하는 것이 좋습니다.

GetComponent나 GameObject.Find와 같이 비싼 연산의 함수는 사용을 최소화해야 합니다. 개발하다보면 어쩔 수 없이 사용해야 하는게 이런 함수들입니다. 이런 경우에는 가급적 미리 멤버 변수 등에 캐시하여 놓고 캐시하여 놓은 값을 사용하도록 하여야 합니다.


반응형