1. CharacterController
CharacterController는 캐릭터의 움직임을 처리하기 위해 설계된 특수한 컴포넌트로, 주로 캐릭터의 이동을 수동으로 제어하는 데 사용
주요 특징
- 직접 이동 제어:
Move()
또는SimpleMove()
메서드를 사용하여 캐릭터를 움직일 수 있습니다. 이동은 캐릭터가 물리적으로 기반한 힘에 의해 움직이는 것이 아니라 직접적으로 위치를 제어. - 충돌 처리: CharacterController는 다른 콜라이더와의 충돌을 처리하지만, Rigidbody처럼 물리 기반의 반응을 자동으로 제공하지는 않음. 미는 등의 물리상호작용을 원한다면 OnControllerColliderHit() 함수를 사용.
- 중력 및 물리 제어: 중력은 자동으로 적용되지 않으며, 개발자가 직접 스크립트를 통해 중력을 적용해야 함.
2. Rigidbody
Rigidbody 물리 법칙을 사용해 오브젝트의 움직임을 처리
주요 특징
- 물리 엔진 사용: Rigidbody는 Unity의 물리 엔진에 의해 제어되며, 중력, 마찰력, 충돌 반응 등 물리적 상호작용을 자동으로 처리합니다. 물리 법칙에 따라 이동, 회전 및 충돌이 이루어짐.
- 충돌 처리 : Rigidbody는 자동으로 다른 콜라이더와 물리 상호작용을 수행하여 밀거나 밀리림
- 중력: Rigidbody는 기본적으로 중력을 자동으로 받음(
useGravity
옵션)
CharacterController와 Rigidbody의 차이점 요약
특성 | CharacterController | Rigidbody |
---|---|---|
물리 엔진 사용 | 사용하지 않음 | 사용함 |
중력 적용 | 직접 구현 필요 (Move 로 수동 이동) |
자동으로 중력 적용 (useGravity ) |
이동 방식 | 메서드(Move() , SimpleMove() )로 직접 제어 |
물리 엔진을 통한 힘(AddForce() ) 사용 or valocity |
충돌 처리 | 충돌 감지는 가능, 반응은 직접 구현 필요 | 충돌에 대한 물리적 반응을 자동 처리 |
회전 제어 | 기본 회전 없음, 수동으로 구현 가능 | 물리 엔진에 의해 회전 자동 적용 |
사용 용도 | 캐릭터 움직임 제어, 플레이어/NPC | 물리적 상호작용 오브젝트 (박스, 장애물 등) |
'Unity&C#' 카테고리의 다른 글
[Unity] Canvas Component (0) | 2024.12.23 |
---|---|
[Unity] Animation 관련 소소한 문제들 (0) | 2024.12.06 |
StateMachine / Behaviour Tree (0) | 2024.11.25 |
[Unity] DrawGizmo (0) | 2024.11.18 |
CSVtoScriptableObject (0) | 2024.10.30 |