인프런 커뮤니티 질문&답변

김호찌님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

스탯

플레이어 몬스터 접근시 넘어지면서 걷는 버그

작성

·

339

0

플레이어 컴포넌트에는 박스 콜라이더, 내브 메쉬에이전트가 적용되어 있고 몬스터에는 박스콜라이더가 접근 되어있습니다. is kinematic체크를 해서 충돌해제를 하더라도 기울어지면서 결국 넘어지고 걷는 행동을 하는데요 혹시 이런 경우 해결하신 분 계신가요?

마우스를 계속 클릭하고 있을 때에는 몬스터를 뚫고 넘어갑니다.

몬스터에 마우스를 클릭했을 때 매우 근접해졌을 때 몬스터 콜라이더에 의해서 넘어지는 것 같습니다. 콜라이더 제거시 넘어지지 않습니다. (클릭한 자리로 이동하려고 애씀.)

답변 2

1

OnMouseClick() 의 아래부분 때문입니다.

_targetPoint = hit.point에서 hit.point의 백터값이 Ground 가 아닌 Monster의 백터값이기 때문에 백터의 Y값이 0이 아니여서 이동방향이 위로 향하게 되며 발생하는 버그입니다.

_targetPoint = hit.point 에서 hit.point의 Y값을 0으로 고정시켜주면 해결됩니다.

if (Physics.Raycast(ray, out hit, 100f, _mask))
    {
      _targetPoint = hit.point;

      if (hit.collider.gameObject.layer == (int)Define.Layer.Monster)
      {
        Debug.Log("Monster Clicked");
      }
      else
      {
        Debug.Log("Ground Clicked");
      }
    }

0

저는 키보드 움직임 연결 해제하니 증상이 사라졌어요.