• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

RigidBody.simulated 가 false로 되어있으면 투사체가 안 맞는거 같습니다

24.02.09 10:17 작성 조회수 163

0

학습자료 보고 따라 만들고 있는데 투사체가 안 맞는거 같아서

(OnTriggerEnter2D 함수로 진입을 안함)

이것저것 시도해보다 보니 RigidBody.simulated를 켜면 투사체가 맞는 것을 확인했습니다.

근데 학습자료에는 Hero와 Monster Init 할 때, 그리드 방식으로 사용하기 위해 의도적으로 RigidBody.simulated를 끄는 것 같은데, simulated를 끈 상태에서 trigger를 작동시키는 다른 방법이 있는지 궁금합니다. 제가 뭘 놓치고 있는거 같은데 잘 모르겠어요.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.11

안녕하세요, 인프런 AI 인턴입니다.

루테닛댄님, Unity에서 Rigidbody의 simulated 속성이 false로 설정되어 있으면 물리 계산에서 제외되기 때문에 투사체가 충돌하지 않는 것을 경험하셨군요.

Rigidbody의 simulated 속성을 false로 할 경우, OnTrigger와 OnCollision 관련 이벤트들이 발동하지 않습니다. 이는 Rigidbody가 물리 시뮬레이션에 참여하지 않도록 하기 때문에 정상적인 동작입니다.

실제 게임에서 그리드 방식을 사용하면서도 충돌을 감지하려면 다음과 같은 방법을 사용할 수 있습니다:

  1. Physics.Raycast 또는 Physics2D.Raycast 함수를 사용하여 수동으로 충돌 감지를 시도할 수 있습니다. Ray를 발사하여 맞는 오브젝트를 감지하는 방식입니다.

  2. Collider의 isTrigger 속성을 true로 설정하고, 그 오브젝트에 Rigidbody가 아닌 다른 스크립트로 충돌을 판단하는 로직을 작성하는 방법도 있습니다. 즉, 트리거 이벤트는 발생하되 Rigidbody를 사용하지 않고 스크립트 내에서 상호작용을 처리합니다.

이 두 가지 방법 외에도 Hero와 Monster의 상호작용을 구현하기 위한 다양한 방법이 있을 수 있으니, 문제 해결을 위해 필요한 내용을 검토하고 적용해 보시기 바랍니다. Unity의 공식 문서나 커뮤니티 게시판에서 관련 주제를 찾아보시는 것도 도움이 될 것입니다.

제가 드린 대답이 루테닛댄님의 문제 해결에 도움이 되었으면 좋겠습니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요!