
MovePosition
물리 작용을 이용해 위치 정보를 계산하는 함수.
Rigidbody 컴포넌트의 메소드이며
(Rigidbody가 없으면 작동 x)
Vector 값을 인수로 지정하여 해당 위치로 이동.
Rigidbody rb; // 플레이어의 리지드 바디 컴포넌트
//void Start
//플레이어의 리지드 바디 컴포넌트 가져와서 저장
rb = GetComponent<Rigidbody>();
void Update
{
// 기존의 트랜스폼 이동 방식
//transform.position += new Vector3(h, 0, v).normalized * moveSpeed * Time.deltaTime;
rb.MovePosition(rb.position + (new Vector3(h, 0, v).normalized * moveSpeed * Time.deltaTime));
}
물리 작용이 있는 상체에서 오브젝트가 충돌 가능한 벽이 있는 특정 방향으로 계속 이동하려고 하는 상황에서, 벽에 부딪히면 오브젝트는 통과되지 않지만 오브젝트의 Transform은 계속해서 증가하는 상황에서 transform.position 대신 사용하면 좋다.