티스토리 뷰

반응형

[1] Mesh Collider

 

Mesh Collider 에 관해서 알게 된 것들은 아래와 같습니다.

1.
Mesh Collider는 Convex를 활성화해야지만 충돌을 감지할 수 있다.


2.
Mesh Collider가 붙어있고 Convex 체크가 되어있는 두 오브젝트가 충돌을 감지를 못할 경우
의심해봐야할 부분은 아래와 같다 (참고)

- RigidBody가 둘다 안붙어있는 경우 => 둘 중 하나는 RigidBody 컴포넌트가 붙어있어야 충돌가능함
- 콜라이더 두개가 안겹치는 경우 => 콜라이더 범위를 늘려야함


3.
Mesh Collider는 아주 세밀한 충돌 감지용도로 사용되고
보통은 Capsule Collider 를 주로 사용한다.
Mesh Collider는 충돌 감지를 위한 CPU 부하가 가장 높은 Collider 이기 때문이다.
(참고)


[2] CharacterController

CharacterController 는 플레이어의 움직임을 쉽게 구현할 수 있게 해줍니다. (rigidbody를 다루거나 하는 것 없이)

자체적으로 Capsule Collider를 가지고 있어서 따로 Collider 컴포넌트를 추가하지 않아도 물체와 충돌하면 움직임이 제한되고

경사, 계단 오르기 움직임도 지원합니다.

 

하지만 중력작용이나 물리적인 영향을 받아야하는 것은 직접 구현해줘야한다고 하네요

그래서 StarterAsset의 플레이어를 보면 이렇게 Rigid Body 스크립트가 추가되어있는 것 같아요 (추측) 

 

그리고 ThirdPersonController 스크립트를 열어봐도 Gravity, Grounded 를 이용해서 분기하는 코드가 들어가있어요

 

 

개발문서를 보면 힘에 영향을 받지 않고 오직 Move function을 호출해야만 이동한다 라고 적혀있으나..

transfrom.position을 세팅해서 이동가능하더라구요;;

 

 

아래 유튭 영상을 추천합니다.
- Easiest way to Move, Rotate and Jump Player in Unity 3d

- 고박사님의 CharacterController 기반의 오브젝트 이동 영상

- https://www.youtube.com/watch?v=dQCMmzQcLIc 

 

 

 

반응형
댓글