강의

멘토링

로드맵

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

김호찌님의 프로필 이미지
김호찌

작성한 질문수

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

스탯

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

작성

·

452

0

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

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

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

퀴즈

48%나 틀려요. 한번 도전해보세요!

Unity 게임 개발 프레임워크에서 Manager를 사용하는 주된 목적은 무엇일까요?

특정 오브젝트의 애니메이션을 제어하기 위해서

자주 사용되는 기능이나 시스템을 중앙에서 관리하기 위해서

캐릭터의 스탯 값을 저장하기 위해서

게임 씬의 배경 음악을 재생하기 위해서

답변 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

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

김호찌님의 프로필 이미지
김호찌

작성한 질문수

질문하기