유니티 리지드바디 끼리 충돌 시 떨림 현상(Trmbling phenomenon when Unity rigidbodies collide)
Rigidbody2D 컴포넌트가 부착되어 있는 플레이어 캐릭터와 Rigidbody2D 컴포넌트가 부착되어 있는 벽이랑 부딪힐 때 (벽쪽으로 플레이어를 계속 밀어부칠때) 계속 떨림현상이 발생할 때
결론부터 말씀드리자면, 해당 옵션을 None 또는 Interpolate로 변경하면 됩니다.
Unity의 Rigidbody2D 컴포넌트는 2D 물리 시뮬레이션을 위한 다양한 옵션을 제공합니다. Interpolate 옵션은 Rigidbody2D가 활동하는 오브젝트의 움직임을 어떻게 처리할지 결정합니다. 이 옵션은 특히 오브젝트의 움직임이 끊기지 않고 부드럽게 보이도록 하기 위해 중요합니다. None, Interpolate, Extrapolate 세 가지 옵션이 있으며, 각각의 차이점과 사용 시 주의사항은 다음과 같습니다.
None
- 설명: 오브젝트의 위치나 회전을 보간하지 않습니다.
-사용 시기: 오브젝트가 느리게 움직이거나 화면에 자주 나타나지 않을 때 사용할 수 있습니다. 또는 성능이 중요한 경우에도 선택할 수 있습니다.
- 주의사항: 움직임이 빠른 오브젝트에 None을 사용하면 움직임이 끊기거나 버벅거리는 것처럼 보일 수 있습니다.
Interpolate
-설명: 이전 프레임과 현재 프레임 사이의 오브젝트의 위치와 회전을 보간합니다. 이는 렌더링 시간과 물리 시뮬레이션 시간 사이의 차이를 극복하기 위해 사용됩니다.
-사용 시기: 움직임이 매끄럽게 보여야 하며, 오브젝트가 화면에 자주 나타나거나 사용자의 주의를 많이 끌 때 사용합니다.
-주의사항: Interpolate 를 사용하면 더 많은 계산이 필요할 수 있으므로, 오브젝트의 수가 많을 때 성능에 영향을 줄 수 있습니다.
Extrapolate
-설명: 오브젝트의 움직임을 예측하여 현재 프레임의 위치와 회전을 계산합니다. 이는 오브젝트가 이전 프레임보다 앞서 나가도록 합니다.
-사용 시기: 네트워크 지연이나 높은 프레임 속도의 게임에서 오브젝트의 움직임을 더 부드럽게 하기 위해 사용됩니다.
-주의사항: 예측된 움직임이 실제와 다를 수 있으므로, 오브젝트의 위치가 갑자기 변경될 때 이상하게 보일 수 있습니다. 또한 Extrapolate 옵션은 성능에 더 많은 영향을 줄 수 있습니다.
상황에 따른 옵션 선택
-움직임이 빠르고 화면에 자주 나타나는 오브젝트는 Interpolate를 사용하여 움직임을 부드럽게 합니다.
-성능이 중요하거나 움직임이 느린 오브젝트는 None을 고려할 수 있습니다.
-네트워크 지연이나 매우 빠른 움직임을 처리해야 할 경우 Extrapolate를 사용할 수 있지만, 예측에 의한 위치 오류를 고려해야 합니다.
각 옵션의 선택은 게임의 요구 사항, 오브젝트의 움직임 특성, 그리고 성능에 대한 고려를 바탕으로 결정되어야 합니다.
저렇게 했음에도 해결이 안된다면, Physics Material Bounciness 조절 및 기타 다른 이유입니다.