Velocity 및 MovePosition 메서드는 모두 Rigidbody2D를 사용하여 Unity 2D에서 캐릭터를 이동하는 데 사용할 수 있지만 서로 다른 시나리오에 더 적합하도록 만드는 몇 가지 차이점이 있습니다.
속도는 강체의 속도를 직접 설정하여 시간이 지남에 따라 부드러운 움직임을 허용합니다.
이 방법은 다음과 같이 캐릭터가 계속 움직여야 하는 상황에 더 적합합니다.
B. 걷거나 달릴 때. 속도 방법은 캐릭터에 힘을 적용하는 데에도 사용할 수 있습니다.
B. 점프하거나 적에게 밀쳐지는 것.
반면 MovePosition 메서드는 캐릭터의 속도와 관계없이 강체를 프레임의 특정 위치로 이동합니다.
이 방법은 다음과 같이 캐릭터가 빠르고 정확하게 움직여야 하는 상황에 더 적합합니다.
B. 회피하거나 텔레포트할 때. 그러나 한 프레임에서 강체를 특정 위치로 이동시키기 때문에 연속 사용시 불안정한 움직임이 발생할 수 있습니다.
하향식 액션 게임에서는 플레이어 캐릭터의 특정 동작과 움직임에 따라 두 가지 방법이 모두 필요할 수 있습니다.
예를 들어 걷기, 달리기와 같은 일반적인 움직임에는 Speed를 사용하고 회피 또는 롤링과 같은 보다 정밀한 움직임에는 MovePosition을 사용할 수 있습니다.
일반적으로 특정 게임 메커니즘에 가장 적합한 방법을 확인하기 위해 두 가지 방법을 모두 실험해 보는 것이 좋습니다.
필요에 따라 AddForce 또는 AddTorque와 같은 다른 방법을 사용할 수도 있습니다.