낑깡의 게임 프로그래밍 도전기

Unity C# WheelCollider 본문

Unity C#

Unity C# WheelCollider

낑깡겜플밍 2025. 7. 9. 11:21
반응형

WheelCollider는 Unity에서 자동차 물리 시뮬레이션을 구현할 때 사용하는 특수한 Collider 컴포넌트다.
일반적인 BoxCollider나 SphereCollider와 달리, WheelCollider는 실제 바퀴처럼 회전, 지면 접촉 감지, 서스펜션 반응, 마찰 계산 등을 전담하는 물리 시스템이다.

 

1. 바퀴 회전 및 이동 계산

WheelCollider는 차량의 엔진 토크, 브레이크, 스티어링(조향) 입력을 받아 바퀴 회전 및 전진/후진 동작을 물리적으로 계산함

motorTorque: 바퀴에 엔진 힘을 가함 (구동력)

brakeTorque: 바퀴에 제동력을 가함

steerAngle: 조향 각도 조절

 

2. 서스펜션 시뮬레이션

바퀴가 움직이며 위아래로 움직이는 서스펜션 효과를 포함.

주요 속성:

suspensionDistance: 서스펜션의 총 이동 거리

suspensionSpring: 서스펜션의 스프링 강도 및 감쇠력 (spring, damper, targetPosition)

 

3. 마찰력(Friction) 계산

타이어가 지면에 접촉할 때 전방향/측면 마찰력을 자동 계산하여 미끄러짐, 코너링 등을 시뮬레이션함.

forwardFriction / sidewaysFriction: 마찰 계수, 슬립 값 조절 가능

 

4. 지면 접촉 감지

WheelCollider.GetGroundHit(out WheelHit hit) 메서드를 통해:

지면에 닿았는지 여부

접촉 지점 위치, 노멀

슬립 정도

지면 물리재질 (PhysicMaterial) 등 정보 획득 가능

 

*주의 사항

WheelCollider는 Mesh와는 독립적림. 실제 회전 시각 효과를 주려면 바퀴 메시에 직접 transform.Rotate() 등을 사용해서 시각적으로 동기화해줘야 함.

회전 방향이나 위치를 맞추기 위해 WheelCollider.GetWorldPose(out Vector3 pos, out Quaternion rot) 사용 권장

 

사용팁

항목 설명
center WheelCollider의 로컬위치
radius 바퀴 반지름
mass 바퀴 질량
isGround 바퀴가 지면에 닿았는지 여부
ConfigureVehicleSusvteps() 고속 주행 시 정밀도 향상을 위한 세부 설정(고급용)
반응형