보통 transform.position = VECTOR3
를 통해서 게임 오브젝트를 이동시키는데...
일반적으론 별 문제 없지만 프레임당 7000개의 오브젝트를 움직이게 했더니
퍼포먼스에서 이상한 부분을 발견했다.
그래서 빨갛게 표시한 부분과 같이 변수를 만들어서 참조를 직접했더니 성능의 차이가 발생
캡처 도구 안의 모습은 transform.position = VECTOR3를 매 프레임마다 했더니 Component.get_transform()이 매 순간 돌아가면서
유의미한 CPU 연산량을 잡아먹고 있는 모습.
왼쪽의 프로파일러는 그 부분이 사라지면서 성능이 개선된 모습.
자기 자신이 붙어 있는 게임 오브젝트의 transform을 참조하는데도 오버헤드가 걸린다... 이말인가?
사실 유니티 오브젝트의 구조를 따지고 보자면 일리는 있다.
교훈: 유니티에서는 변수 선언충이 되자.