강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của riodwsong6521
riodwsong6521

câu hỏi đã được viết

Khóa học tuyệt đối! Unity 6 - Masterclass Unity qua game TPS

Thực hiện sát thương bị đánh bằng Interface.

Barrel에 IDamagable 적용 관련 질문

Viết

·

67

0

안녕하세요.

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

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

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

  1. Raycast에서 거리 증가

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

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

C#unity

Câu trả lời 2

0

indiegamemaker님의 프로필 이미지
indiegamemaker
Người chia sẻ kiến thức

안녕하세요. Rio Song님,

 

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

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

0

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

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

1. Raycast 거리 증가

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

2. 총알 프리팹 사용

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

3. 물리 기반 트리거

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

유사 질문 및 해결책

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

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

Hình ảnh hồ sơ của riodwsong6521
riodwsong6521

câu hỏi đã được viết

Đặt câu hỏi