게임

유니티 transform 참조의 문제

by 조루나 posted Nov 10, 2022
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄


aaab.jpg

 

보통 transform.position = VECTOR3

를 통해서 게임 오브젝트를 이동시키는데...

 

일반적으론 별 문제 없지만 프레임당 7000개의 오브젝트를 움직이게 했더니

퍼포먼스에서 이상한 부분을 발견했다.

 

그래서 빨갛게 표시한 부분과 같이 변수를 만들어서 참조를 직접했더니 성능의 차이가 발생

 

 

 

 

aaa.jpg

 

캡처 도구 안의 모습은 transform.position = VECTOR3를 매 프레임마다 했더니 Component.get_transform()이 매 순간 돌아가면서

유의미한 CPU 연산량을 잡아먹고 있는 모습.

 

왼쪽의 프로파일러는 그 부분이 사라지면서 성능이 개선된 모습.

 

 

 

 

자기 자신이 붙어 있는 게임 오브젝트의 transform을 참조하는데도 오버헤드가 걸린다... 이말인가?

사실 유니티 오브젝트의 구조를 따지고 보자면 일리는 있다.

 

교훈: 유니티에서는 변수 선언충이 되자.



Articles

1 2 3