Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Archives
Today
Total
관리 메뉴

시작은 0부터

16. AddRelativeForce, Wheel Collider 본문

Unity 학습일지

16. AddRelativeForce, Wheel Collider

0base 2022. 9. 1. 01:06

레이싱 게임을 만들어보면서 차량의 움직임을 구현할 때 지금까지 알고 있던 transform.Translate, RigidBody.AddForce, RigidBody.velocity 가운데 AddForce가 가장 차량 움직임에 근접한 이동방식이라고 판단하여 사용했는데, 차량을 회전해도 바라보는 방향과 상관없이 절대좌표를 기준으로 Z축으로 전진하는 문제가 있었다.

 

AddRelativeForce

: AddForce(절대좌표)의 상대좌표버전. 오브젝트의 회전값을 기준으로 작동한다.

 

이동 구현에 난항을 겪고 있는데, 우선 맵에는 경사(오르막, 내리막길)도 있고 약간의 턱(방지턱)도 있는 구조다. 이런 환경에서 Character Controller 를 사용하면 경사나 턱은 알아서 넘어가도록 구현이 되지만 문제는 리지드바디와 별개로 되는 작동원리라 해당 컴포넌트를 사용할 경우 직접 중력과 같은 물리연산을 구현해야한다는 점이었다. 그렇다고 AddForce 나 Velocity의 경우 방지턱을 원할하게 넘어가지 못하는 문제가 생겨서 어떤 방식으로 이동을 구현해야할지 고민이다. RigidBody를 활용하여 이동을 구현할 경우 콜라이더 충돌을 기준으로 물리 연산이 되서 방지턱을 원할하게 넘어가는 것이 아니라 들이박고 속력이 급감(거의 0에 가까운)하면서 올라가는 문제가 생겼다.

 

https://docs.unity3d.com/kr/530/Manual/class-WheelCollider.html

 

휠 콜라이더 - Unity 매뉴얼

휠 콜라이더(Wheel Collider) 는 지상 차량용 특수 콜라이더입니다. 충돌 검사, 휠 물리 효과 및 슬립 기반 타이어 마찰 모델이 포함되어 있습니다. 휠이 아닌 오브젝트에도 사용이 가능하지만, 휠이

docs.unity3d.com

 

그때 구글링을 하다가 'Wheel Collider'라는 유니티 레이싱게임 전용 콜라이더가 있는 것을 발견했는데 작동방식이 Rigidbody가 아닌 Wheel Collider 자체의 명령어들로 이루어져 있어서 뭐가 뭔지 모르겠다. 현재까지는 그냥 콜라이더를 쓸 때보다는 자연스럽게 방지턱을 오르는 정도로 구현을 한 상태다. 시도를 해보다가 기간안에 진도를 너무 못나간다 싶으면 맵의 경사 등을 제거하고 중력을 사용할 일이 없게 만들어서 최대한 캐릭터 콜라이더로 구현해봐야겠다.

 

'Unity 학습일지' 카테고리의 다른 글

18. Physics.OverlapSphere, Physics.Raycast, Transform.Rotate  (0) 2022.09.18
17. UI, Blend Tree  (0) 2022.09.13
15. Raycast  (0) 2022.08.30
14. Lightmap, Animator Layer, Rigidbody.MovePosition  (0) 2022.08.29
13. Matrix4x4, lossyscale, TRS  (0) 2022.08.27