Inflearn brand logo image

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

Rio Song님의 프로필 이미지
Rio Song

작성한 질문수

절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스

인터페이스 활용한 피격 데미지 구현

Barrel에 IDamagable 적용 관련 질문

작성

·

39

0

안녕하세요.

Damage를 입는 대상에 대해서 IDamagable 인터페이스를 적용하는 부분은 알겠습니다.

다만, 지금과 같이 Barrel에 적용하였을 경우, Raycast의 설정된 거리 문제로 실제 화면에서는 barrel에 총알이 부딪히는 효과가 나타나지만 터지지 않는 문제가 발생할 수 있을 것 같은데, 단순히 거리를 늘려서 해결하는 것이 맞을지 아니면 다른 방법이 있을지 궁금합니다.

Raycast를 추가하지 않고 해결하려면

  1. Raycast에서 거리 증가

  2. 총알이 Raycast 감지 영역을 벗어났을 때 Relase

이렇게 밖에 떠오르지 않아서요.

답변 2

0

이재현님의 프로필 이미지
이재현
지식공유자

안녕하세요. Rio Song님,

 

Bullet과 충돌해서 Spark 효과는 발생하지만 Raycast 거리가 짧다면 Barrel에 데미지가 들어가지 않는 경우에 어떻게 처리하는 것이 좋을지에 대한 질문이신것 같습니다.

이 문제는 생각하신데로 Raycast의 거리를 늘리는 방법이 가장 간단합니다. 다른 방법으로는 강의에서 말씀드린 물리적인 충돌이 발생했을 때 IDamageable 을 Invoke 시키는 방법을 사용할 수도 있습니다.

0

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

IDamagable 인터페이스를 사용하는 것은 여러 오브젝트에게 데미지를 처리하는 구조를 만들 때 매우 유용합니다. 그러나 현재 겪고 있는 문제는 Raycast 기반의 한계와 관련이 있을 수 있습니다. 이와 같은 문제를 해결하기 위한 몇 가지 방법을 제안드리겠습니다.

1. Raycast 거리 증가

Raycast의 거리를 단순히 증가시키는 것은 문제를 해결하는 데 가장 간단한 방법일 수 있습니다. 하지만 이 방법은 성능에 영향을 줄 수 있으며, 모든 경우에 적합하지 않을 수 있습니다. 특히, 너무 긴 거리는 원하지 않는 오브젝트와 충돌을 유발할 수 있습니다.

2. 총알 프리팹 사용

총알 프리팹을 만들어 오브젝트들과 물리적인 충돌을 감지하도록 하는 방법도 고려해볼 수 있습니다. 이 경우 OnCollisionEnter 메소드 등을 사용하여 총알이 오브젝트와 충돌할 때 이벤트를 발생시킬 수 있습니다.

3. 물리 기반 트리거

Raycast 대신에 물리 기반 트리거를 사용할 수도 있습니다. 총알이 다른 오브젝트와 충돌했을 때 이 트리거를 통해 해당 오브젝트의 IDamagable 인터페이스를 호출하여 처리하는 방식입니다. 이 방법은 약간 복잡하지만, 오브젝트 간의 물리적인 상호작용을 더 정확하게 처리할 수 있습니다.

유사 질문 및 해결책

강의 내 유사한 문제를 해결하기 위한 접근 방법에 대한 예제나 심층적인 설명이 있을 수 있습니다. Raycast 및 충돌 처리 관련 질문에 대한 답변을 참조하시면 도움이 될 수 있습니다.

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

Rio Song님의 프로필 이미지
Rio Song

작성한 질문수

질문하기