게임엔진/유니티

[게임엔진/유니티] CharacterController vs Rigidbody

susot 2025. 3. 11. 22:45

CharacterController가 무엇일까?

 

CharacterController는 캐릭터의 이동과 충돌 기능이 있는 컴포넌트입니다.

Rigidbody를 사용하지 않기 때문에 물리연산을 하지 않고도 장애물 인식하고 이동할 수 있습니다.

 

Rigidbody가 무엇일까?

 

Rigidbody는 유니티에서 물리엔진을 이용해 게임오브젝트가

실제 물리 법칙에 따라 움직이도록 하는 컴포넌트입니다.

물리엔진을 사용하므로 중력, 질량, 마찰력등 물리기능을 가지고 있습니다.

 

CharacterController VS Rigidbody

CharacterController

  • 제어 방법 : Rigidbody는 물리 엔진으로 제어되지만,  CharacterController는 플레이어의 입력으로 제어됩니다.
  • 충돌 : Rigidbody는 모든 오브젝트와 충돌하지만, CharacterController는 지형, 장애물 같은 오브젝트와만 충돌합니다.
  • 사용 용도 : Rigidbody는 다양한 물리 객체를 구현하는 데 사용되고, CharacterController는 사람 같은 플레이어를 구현하는 데 사용됩니다.

 

CharacterController와 Rigidbody를 서로 장단점이 존재하므로 적절한 컴포넌트를 골라 사용하면 됩니다.

 

장단점

Rigidbody

장점

  • 정확한 물리 법칙으로 움직이는 물체를 구현할 수 있다.
  • 다양한 물리 객체를 구현하는게 가능하다.

단점

  • 물리 충돌 계산으로 인해 성능 저하가 생길 수 있다.
  • 플레이어의 입력으로 제어할 수 없다.
  •  

CharacterController

장점

  • 플레이어의 입력으로 제어할 수 있다.
  • 충돌로 인한 성능 저하가 적다.

단점

  • 두 다리로 걷는 플레이어만 구현 가능하다.
  • 물리적으로 정확한 움직임을 구현할 수 없다 (직접 물리 연산을 구현해야 함)

 

CharacterConroller

 

Rigidbody

 

결론 : 적절한 컴포넌트를 선택해서 쓰면 된다.

긴 글 읽어주셔서 감사합니다.