오브젝트의 위치를 변경하고 싶을때 position 값을 바꾸게 된다.
그런데 rigidbody가 적용된 오브젝트를 움직일 때 궁금증이 생겼다.
transform.position과 rigidbody.position를 각각 수정해보았더니 두 값 모두 오브젝트를 이동시켰다.
그런데 특정 상황에서는 이동에 따른 결과가 다르게 나오기도 했다.
두 포지션값은 서로 차이가 없는걸까.
결론부터 말하자면 퍼포먼스와 이동되는 시점의 차이에 달려있다.
transform.position 을 사용할 경우
- 오브젝트의 위치가 즉시 순간이동된다.
- 순간이동됨과 동시에 연결된 모든 콜라이더들이 리지드바디의 위치를 다시 계산하게 된다.
- 퍼포먼스가 저하된다
rigidbody.position 을 사용할 경우
- '다음 물리 시뮬레이션 단계' 이후에 오브젝트의 위치가 순간이동된다
- 이미 시뮬레이션 계산이 이루어졌기 때문에 더 나은 속도와 퍼포먼스를 보여준다.
여기까지가 대략적으로 이해한 내용이다.
'개발 > Unity' 카테고리의 다른 글
[Unity] 아이소메트릭 타일맵 공부 - (1) 타일 팔레트 설정하기 (1) | 2020.07.13 |
---|---|
[Unity] 공공데이터 API (REST) 연동하는 방법 - (2) (5) | 2020.07.01 |
[Unity] 공공데이터 API (REST) 연동하는 방법 - (1) (0) | 2020.06.28 |
게임 사운드 사이트 정리 (1) | 2020.06.26 |
[Unity] 프리팹 브러시 설치 방법 (0) | 2020.01.22 |