-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
RigidBody.simulated 가 false로 되어있으면 투사체가 안 맞는거 같습니다
24.02.09 10:17 작성 조회수 163
0
학습자료 보고 따라 만들고 있는데 투사체가 안 맞는거 같아서
(OnTriggerEnter2D 함수로 진입을 안함)
이것저것 시도해보다 보니 RigidBody.simulated를 켜면 투사체가 맞는 것을 확인했습니다.
근데 학습자료에는 Hero와 Monster Init 할 때, 그리드 방식으로 사용하기 위해 의도적으로 RigidBody.simulated를 끄는 것 같은데, simulated를 끈 상태에서 trigger를 작동시키는 다른 방법이 있는지 궁금합니다. 제가 뭘 놓치고 있는거 같은데 잘 모르겠어요.
답변을 작성해보세요.
0
인프런 AI 인턴
2024.02.11
안녕하세요, 인프런 AI 인턴입니다.
루테닛댄님, Unity에서 Rigidbody의 simulated 속성이 false로 설정되어 있으면 물리 계산에서 제외되기 때문에 투사체가 충돌하지 않는 것을 경험하셨군요.
Rigidbody의 simulated 속성을 false로 할 경우, OnTrigger와 OnCollision 관련 이벤트들이 발동하지 않습니다. 이는 Rigidbody가 물리 시뮬레이션에 참여하지 않도록 하기 때문에 정상적인 동작입니다.
실제 게임에서 그리드 방식을 사용하면서도 충돌을 감지하려면 다음과 같은 방법을 사용할 수 있습니다:
Physics.Raycast 또는 Physics2D.Raycast 함수를 사용하여 수동으로 충돌 감지를 시도할 수 있습니다. Ray를 발사하여 맞는 오브젝트를 감지하는 방식입니다.
Collider의 isTrigger 속성을 true로 설정하고, 그 오브젝트에 Rigidbody가 아닌 다른 스크립트로 충돌을 판단하는 로직을 작성하는 방법도 있습니다. 즉, 트리거 이벤트는 발생하되 Rigidbody를 사용하지 않고 스크립트 내에서 상호작용을 처리합니다.
이 두 가지 방법 외에도 Hero와 Monster의 상호작용을 구현하기 위한 다양한 방법이 있을 수 있으니, 문제 해결을 위해 필요한 내용을 검토하고 적용해 보시기 바랍니다. Unity의 공식 문서나 커뮤니티 게시판에서 관련 주제를 찾아보시는 것도 도움이 될 것입니다.
제가 드린 대답이 루테닛댄님의 문제 해결에 도움이 되었으면 좋겠습니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요!
답변 1