강의

멘토링

로드맵

Inflearn brand logo image

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

teo Kim님의 프로필 이미지
teo Kim

작성한 질문수

[Unity6] 나만의 서바이벌 게임 만들기

오브젝트 Hit 이펙트

오브젝트활성화 > 오브젝트 Hit 이펙트 쪽 질문입니다

해결된 질문

작성

·

67

0

소중한 강의 감사드립니다.
23:58 public virtual void OnHit() 에 HP_Init() 을 별도로 작업해 주셨는데 그 구체적인 이유가 궁금합니다. 설명해 주신 바로는 Interaction_Hit.cs 에 public override void OnHit() 에 shakeTree 부분이 문제 된다고 하셨는데 어떤 문제인지에 대한 언급은 없으셔서요

답변 2

0

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

안녕하세요, Interaction()이 활성화가 되자마자 Hp_Init()이 호출이 되면 도끼질을 진행하지 않은 상태에서 나무가 흔들리는 연출이 나타나게됩니다. 그렇기에 OnHit()함수를 따로 만들어주어서 나무가 도끼질을 진행된 이후에만 ShakeTree()함수를 진행하게끔 처리를 하였습니다 🙂

teo Kim님의 프로필 이미지
teo Kim
질문자

아 그렇군요 감사합니다

0

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

Unity에서 오브젝트의 히트(피격) 관련 메서드인 OnHit()을 다루는 데 있어, 강사님께서 HP_Init()를 별도로 작업한 이유는 피격 시 오브젝트의 반응을 좀 더 구체적이고 유기적으로 처리하기 위함입니다.

HP_Init()을 별도로 작업한 이유:

  1. 객체 초기화: HP_Init()은 객체의 초기화 작업을 담당합니다. 피격 시 이전 상태를 초기화하고 새로운 상태를 맞이하기 위한 준비 작업이 필요합니다.

  2. ShakeTree 문제: Interaction_Hit.cs 파일에서 OnHit() 메서드가 오버라이드된 이유 중 하나는 shakeTree가 포함된 특정 상호작용 로직에서 발생할 수 있는 문제를 예방하기 위함일 수 있습니다. 만약 shakeTree가 예상치 못한 행동이나 오류를 유발할 가능성이 있다면, 이를 외부에서 관리하고 제어하도록 구조를 변경한 것입니다.

    • 이는 객체가 피격되어 나무 흔들림 효과를 줄 때, 예상치 못한 물리적 상호작용 문제를 방지하려는 조치일 수 있습니다. 즉, shakeTree로 인해 게임 플레이 흐름을 방해할 수 있는 요소를 최소화하기 위한 의도입니다.

유사한 질문 및 해결 사례:

OnHit() 메서드의 구체적인 구현 및 로직에 따라 다소 차이가 있을 수 있지만, 객체의 상태 관리와 안정적 반응 처리를 위해 HP_Init()을 별도로 작업하는 것이 유용합니다.

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

teo Kim님의 프로필 이미지
teo Kim

작성한 질문수

질문하기