This document is about: QUANTUM 2
SWITCH TO

히트

개요

HitSystem은 특성, 아군의 사격, 신체 부위 손상 곱셈 지원으로 HealthSystem을 확장합니다. HitSystem은 모든 히트, 대미지, 힐링 계산을 담당합니다. HitSystemHealthSystem에 의존하며 API를 사용하여 히트 계산에 따라 Health 컴포넌트에 변경사항을 적용합니다.

주의: 이 시스템은 FPS 폴더의 일부이며 특정 게임 디자인의 필요에 따라 다시 작성할 수 있도록 설계되었습니다.

HitData

HitData는 히트 자체와 관련된 정보를 포함하고 있으며 히트 출력을 계산하기 위해 ISignalHit 매개변수가 요구하는 인자입니다. HitData의 필드 구성은 다음과 같습니다.

  • Target ( 필수 ): 히트된 엔티티 (예, 적 에이전트)
  • Source ( 필수 ): 히트를 생성한 엔티티 (예, 발사체)
  • Instigator ( 필수 ): 히트를 유발한 엔티티 (예, 에이전트 - 히트의 원인이 되는 무기의 소유자와 발사체)
  • Position ( 필수 ): 히트 위치
  • BodyPartType ( 선택 ): 히트를 받는 EBodyPartType
  • HitSource ( 선택 ): 히트의 EHitSource, 의미 정보 추가
  • IsCritical ( 선택 ):
  • IsFriendlyFire: ISignalHit를 호출한 후 HitSystem에서 RecalculateSourceHit()에 의해 자동으로 설정됩니다.

필수 로 표기된 모든 필드들은 ISignalHitHitData를 전달하기 전에 값이 지정되어야 합니다.

ISignalHit

ISignalHitHealth 컴포넌트에 영향을 미치는 히트, 손상 또는 치유 계산을 수행하는 데 권장되는 방법입니다. HealthSystem에서 직접 ISignalModifyHealth를 호출하지 마십시오.

계산을 계속하려면 ISignalHit에 유효한 한 쌍의 HitDataHealthData 구조체가 필요하며, 후자는 HealthSystem 페이지에 설명되어 있습니다.

ISignalHit를 사용할 때, 다음의 시그널과 이벤트들은 순차적으로 발생됩니다:

  1. ISignalHit(): HitData가 처리되고 HealthData가 변경됩니다.
  2. ISignalModifyHealthNoReport(): HealthDataref 로 수신하여 처리를 진행합니다. Health 컴포넌트의 속성은 HealthData에서 제공하는 정보에 따라 업데이트됩니다. 이 작업의 최종 결과는 HealthData에 다시 저장됩니다.
  3. ISignalOnHit() 과 이것의 카운터 파트 이벤트 Hit가 호출됩니다.
  4. HealthSystem.ReportHealthModified()가 호출됩니다.
  5. 단계 4. HealthData내의 EHealthAction에 기반한 시그널-이벤트 쌍이 발생합니다:
    • ISignalOnHeal() 그리고 Heal()
    • ISignalOnDamage 그리고 Damage()
    • ISignalOnRevive() 그리고 Revive()
    • ISignalOnDeath() 그리고 Death()

마지막 단계에서 발생된 이벤트들은 프레임의 마지막에서 실행됩니다.

Back to top