Unity CharacterController Move / SimpleMove 차이
Unity3D 2021. 7. 30. 13:05유니티에서 벽을 지나갈 수 없게 캐릭터를 이동시키는 방법은
1) rigidbody + Collider를 붙이고 rigidbody.MovePosition을 사용
2) CharacterController를 붙이고 Move 또는 SimpleMove를 사용
크게 두 가지의 방법이 있다.
1)은 완전한 물리처리로 이동하기 때문에 잘 비비면 얇은 벽은 들어갈 수 있는 버그도 생기기 때문에
레이캐스트를 발사해서 이동속도를 차단하는 등의 부가처리가 필요하다.
2)는 softSkin등의 기능들이 달려있어서 경사등을 부드럽게 올라갈 수 있다. 간단하게 구현가능.
CharacterController는 콜리더의 기능도 같이 달려있기 때문에, 별도의 콜리더를 달아줄 필요가 없다.
Move
- 인자는 float (방향 x 속도 x deltaTime를 곱해서 넘겨주자)
- 중력을 받지않는다! 때문에 중력은 수동으로 속도에 곱해줘야한다.
SimpleMove
- 인자는 float (방향 x 속도를 곱해서 넘겨주자)
- 지면방향 움직임만 설정하면 중력은 자동으로 계산된다.
가장 큰 차이는 deltaTime을 넘겨주지 않는 것과, 중력 값이 자동으로 계산되느냐의 차이다.
'Unity3D' 카테고리의 다른 글
[GVR] 360VR (0) | 2021.07.30 |
---|---|
[GVR] 게이지만들고 순간이동하기 (0) | 2021.07.30 |
[GVR] 시선으로 이동, 래티클 사용해서 바라보면 멈추기 (0) | 2021.07.30 |
유랑님 블로그 (유니티 튜토리얼) (0) | 2021.07.30 |
[GVR] unity reticle pointer + event trigger (point down, up) (0) | 2021.07.30 |