[Unity]/[Unity]

[Unity] RigidBody : Collider를 만들었는데 벽을 통과할 때

극꼼 2021. 2. 22. 18:22
반응형


 

[서문]

벽에 Collider를 넣었음에도 가끔 플레이어가 벽을 통과하는 버그가 발생하곤 합니다.

물체의 가속도가 일정량 이상으로 올라가면 생기는 버그로, 원인과 해결 방법에 대해 알아보겠습니다. 

 


[본문]

1) 원인 : 

2cm의 Collider가 있을 때, 1프레임 당 1cm 움직이는 물체에는 잘 적용되지만, 1프레임 당 3cm움직이는 물체는 

 

오브젝트의 현재 위치 + 3cm = Collider의 뒷쪽 

 

이 되면서 충돌처리가 잘 되지 않는 것입니다. 

 

2) 해결 방법 : 

Interpolate의 옵션을 Extrapolate로 하면 충돌을 1프레임 더 앞서 예측하기 때문에 벽을 통과하는 현상이 나아집니다.

 

위의 방법에도 버그 현상이 나아지지 않는다면, 

Collision Detection의 옵션을 Continuous로, 그래도 나아지지 않는다면 Continuous Dynamic으로 해줍니다.

Continuous Dynamic은 성능을 깎아먹기 때문에 크게 추천하지 않습니다. 

 

벽에 부딪혔을 때 가속도가 더 더해지지 않도록 코드를 설계해야 버그 현상이 일어나지 않습니다. 

 

반응형