두 프로퍼티는 대부분의 경우 같은 값을 반환하지만, 특정한 상황에서는 다를 수 있습니다.

Rigidbody의 Interpolate 속성이 Interpolate 또는 Extrapolate로 설정된 경우,
transform.position과 rigidbody.position이 다를 수 있습니다.
rigidbody.position은 FixedUpdate()의 물리 시뮬레이션 결과를 반영하지만,transform.position은 프레임마다 Update()에서 보간된 값을 가질 수 있습니다.
쉽게 설명하자면 rigidbody.position은 FixedUpdate()에서 계산된 값이고,
transform.position은 이전 FixedUpdate 값과 현재 값 사이를 보간한 값이 됩니다.
void Start()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.interpolation = RigidbodyInterpolation.Interpolate;
}
void FixedUpdate()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.MovePosition(rb.position + Vector3.right * Time.fixedDeltaTime);
}
void Update()
{
Debug.Log("Transform Position: " + transform.position);
Debug.Log("Rigidbody Position: " + GetComponent<Rigidbody>().position);
}
transform.position이 rigidbody.position보다 조금 더 부드럽게 변함.