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

루테닛댄님의 프로필 이미지

작성한 질문수

[Rookiss 켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)

오브젝트 툴

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

24.02.09 10:17 작성

·

334

0

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

(OnTriggerEnter2D 함수로 진입을 안함)

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

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

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 02. 11. 10:21

안녕하세요, 인프런 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의 공식 문서나 커뮤니티 게시판에서 관련 주제를 찾아보시는 것도 도움이 될 것입니다.

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