게임 개발
게임개발 21일차 - 캐릭터의 움직임
쌍준
2025. 6. 19. 15:26
2D에서 캐릭터를 움직이는 것에는 3가지 방식이 있다.
1. transform.position 직접 변경
직접 중력을 구현해야 하고, 충돌도 구현해야 한다.
transform.position += new Vector3(x, y, 0) * speed * Time.deltaTime;
2. Rigidbody2D.velocity
Unity 물리엔진이 제공하는 물리 속도를 이용해서 캐릭터를 움직이는 방식rb.linearVelocity = new Vector2(moveInput.x * speed, rb.linearVelocity.y);
충돌, 중력에 관해서 이미 구현이 되어있지만, 끼는 버그가 있음
3. Rigidbody2D.MovePosition()
물리 충돌을 유지하면서, 위치를 직접 지정하는 방식
Vector2 newPos = rb.position + move * Time.fixedDeltaTime;
rb.MovePosition(newPos);
단점은 없다!