Unity

Unity : 충돌 후 이동방향이 삐딱할 때

Sorting 2020. 12. 13. 21:16
반응형

취미 겸 유니티 프로젝트를 시작했는데 

너무도 친절한 엔진이 낯설기만 하다.

 

충돌 후 회전값(angularVelocity) 가 초기화 되지 않음

 

충돌 후 목적지까지 이동 시에는 게걸음으로 이동하고,

목적지까지 도달한 후에는 캐릭터가 계속 뱅글뱅글 도는 문제가 있었다.

 

확인해보니 오브젝트가 충돌한 뒤, rigidbody 의 Angular Velocity 가 초기화되지 않고

계속 슬라이딩 벡터 계산 시의 값으로 남아있는 것을 발견했다.

 

충돌이 끝났을 때, 위 값을 다시 초기화 해줘야 했다.

 

충돌이 끝나는 시점은 

void OnCollisionExit(Collision collision)

위 콜백함수로 알 수 있었다.

 

 

다음과 같이 OnCollisionExit() 콜백함수를 구현하니 정상적으로 동작하는것을 확인할 수 있었다.

 

private void OnCollisionExit(Collision collision)
{
	rigidbody_.angularVelocity = Vector3.zero;
}

 

이렇게 구현하는 게 맞나..?

 

반응형