게임 개발

게임개발 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);

단점은 없다!