히트
개요
HitSystem
은 특성, 아군의 사격, 신체 부위 손상 곱셈 지원으로 HealthSystem
을 확장합니다. HitSystem
은 모든 히트, 대미지, 힐링 계산을 담당합니다. HitSystem
은 HealthSystem
에 의존하며 API를 사용하여 히트 계산에 따라 Health
컴포넌트에 변경사항을 적용합니다.
주의: 이 시스템은 FPS 폴더의 일부이며 특정 게임 디자인의 필요에 따라 다시 작성할 수 있도록 설계되었습니다.
HitData
HitData
는 히트 자체와 관련된 정보를 포함하고 있으며 히트 출력을 계산하기 위해 ISignalHit
매개변수가 요구하는 인자입니다. HitData
의 필드 구성은 다음과 같습니다.
Target
( 필수 ): 히트된 엔티티 (예, 적 에이전트)Source
( 필수 ): 히트를 생성한 엔티티 (예, 발사체)Instigator
( 필수 ): 히트를 유발한 엔티티 (예, 에이전트 - 히트의 원인이 되는 무기의 소유자와 발사체)Position
( 필수 ): 히트 위치BodyPartType
( 선택 ): 히트를 받는EBodyPartType
HitSource
( 선택 ): 히트의EHitSource
, 의미 정보 추가IsCritical
( 선택 ):IsFriendlyFire
:ISignalHit
를 호출한 후HitSystem
에서RecalculateSourceHit()
에 의해 자동으로 설정됩니다.
필수 로 표기된 모든 필드들은 ISignalHit
에 HitData
를 전달하기 전에 값이 지정되어야 합니다.
ISignalHit
ISignalHit
은 Health
컴포넌트에 영향을 미치는 히트, 손상 또는 치유 계산을 수행하는 데 권장되는 방법입니다. HealthSystem
에서 직접 ISignalModifyHealth
를 호출하지 마십시오.
계산을 계속하려면 ISignalHit
에 유효한 한 쌍의 HitData
와 HealthData
구조체가 필요하며, 후자는 HealthSystem
페이지에 설명되어 있습니다.
ISignalHit
를 사용할 때, 다음의 시그널과 이벤트들은 순차적으로 발생됩니다:
ISignalHit()
:HitData
가 처리되고HealthData
가 변경됩니다.ISignalModifyHealthNoReport()
:HealthData
를 ref 로 수신하여 처리를 진행합니다.Health
컴포넌트의 속성은HealthData
에서 제공하는 정보에 따라 업데이트됩니다. 이 작업의 최종 결과는HealthData
에 다시 저장됩니다.ISignalOnHit()
과 이것의 카운터 파트 이벤트Hit
가 호출됩니다.HealthSystem.ReportHealthModified()
가 호출됩니다.- 단계 4.
HealthData
내의EHealthAction
에 기반한 시그널-이벤트 쌍이 발생합니다:ISignalOnHeal()
그리고Heal()
ISignalOnDamage
그리고Damage()
ISignalOnRevive()
그리고Revive()
ISignalOnDeath()
그리고Death()
마지막 단계에서 발생된 이벤트들은 프레임의 마지막에서 실행됩니다.
Back to top