반응형
취미 겸 유니티 프로젝트를 시작했는데
너무도 친절한 엔진이 낯설기만 하다.
충돌 후 목적지까지 이동 시에는 게걸음으로 이동하고,
목적지까지 도달한 후에는 캐릭터가 계속 뱅글뱅글 도는 문제가 있었다.
확인해보니 오브젝트가 충돌한 뒤, rigidbody 의 Angular Velocity 가 초기화되지 않고
계속 슬라이딩 벡터 계산 시의 값으로 남아있는 것을 발견했다.
충돌이 끝났을 때, 위 값을 다시 초기화 해줘야 했다.
충돌이 끝나는 시점은
void OnCollisionExit(Collision collision)
위 콜백함수로 알 수 있었다.
다음과 같이 OnCollisionExit() 콜백함수를 구현하니 정상적으로 동작하는것을 확인할 수 있었다.
private void OnCollisionExit(Collision collision)
{
rigidbody_.angularVelocity = Vector3.zero;
}
이렇게 구현하는 게 맞나..?
반응형
'Unity' 카테고리의 다른 글
Unity : Terrain에서 Prefabs Tree가 추가되지 않을 때 (충돌박스 있는 나무 심기) (0) | 2020.12.25 |
---|---|
Unity : tag 확인 시 == 가 아니라 CompareTag 를 사용하라 (0) | 2020.12.14 |
Unity : 상속받은 User-defined 클래스에 중단점이 안걸릴 때 (0) | 2020.12.14 |