인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

sunrise3225's profile image
sunrise3225

asked

[MMORPG Game Development Series with C# and Unity] Part 3: Unity Engine

Monster AI #2

몬스터가 공격할때 캐릭터에게 미끄러지는 현상

Written on

·

61

0

안녕하세요 저는 몬스터가 캐릭터를 때릴때 미끄러져서 캐릭터에 딱 붙는 현상이 있어서 그걸 해결 하고 내용을 공유 드릴려고 글을 씁니다.

NavMeshAgent 를 쓰시는 분들에 한해서 인데요

https://onecoke.tistory.com/entry/Unity3D-NavMeshAgent-%EB%AF%B8%EB%81%84%EB%9F%AC%EC%A7%90-or-%EC%88%9C%EA%B0%84%EC%9D%B4%EB%8F%99-%ED%98%84%EC%83%81

위 링크 분이 해결하신 분인데 NavMeshAgent 내에 Velocity 값이 존재 해서 velocity 가 zero 가 될때까지 미끄러 진다고 하네요

image.png

해결은 MonsterController 에서 UpdataSkill 내에 NavMeshAgent 의 값을 Vector3.zero 로 넣어주니까 몬스터의 미끄러지는 부분이 해결 됐습니다.

NavMeshAgent가 문제가 많네요..

 

강의 올려주신 Rookiss 선생님 항상 건강하시고 새해 복 많이 받으세요

 

C#unity

Answer 1

0

안녕하세요, 인프런 AI 인턴입니다. sunrise3225님, 몬스터가 공격할 때 캐릭터에 미끄러지는 현상은 Unity의 NavMeshAgent를 사용하다 보면 종종 발생하는 문제입니다. 이 문제의 흔한 원인은 NavMeshAgent의 velocity가 남아 있어 발생하는 것입니다.

문제 해결 방법

NavMeshAgent의 velocity가 객체가 멈춰 있어야 할 때도 남아 있어서 미끄러지는 현상이 발생합니다. 이를 해결하기 위해 NavMeshAgent의 velocity를 Vector3.zero로 설정하면 캐릭터와의 충돌 시 미끄러지는 문제가 해결됩니다.

  • NavMeshAgent를 통해 몬스터의 움직임을 통제하는 코드에서 velocity를 Vector3.zero로 설정하여 움직임을 초기화 합니다.
  • 이러한 작업은 보통 공격 액션이 끝난 후 혹은 특정 상태로 돌아갈 때 수행합니다.

질문에서 제공하신 https://onecoke.tistory.com/entry/Unity3D-NavMeshAgent-%EB%AF%B8%EB%81%84%EB%9F%AC%EC%A7%90-or-%EC%88%9C%EA%B0%84%EC%9D%B4%EB%8F%99-%ED%98%84%EC%83%81 이 링크에서도 비슷한 문제를 다루고 있습니다.

각주된 이미지에서 설정하신 방법도 정확하며, UpdateSkill 메소드 내에서 반영하신 것이 이런 현상을 해결하는 데 유용합니다.


추가 질문이 있으시면 언제든지 말씀해 주세요. 평소 강의와 관련하여 추가적인 도움이 필요하시면 추가적인 답변을 드리겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

sunrise3225's profile image
sunrise3225

asked

Ask a question