This document is about: QUANTUM 2
SWITCH TO

체력

개요

HealthSystemSystemSignalsOnly으로 오직 엔티티에 피해를 입히고 치유하고 킬하는 방법을 제공하는 시스템입니다. 진입 지점은 ISignalModifyHealth이며 HealthData 구조체가 필요합니다.

기본적으로 HealthSystem은 속성이나 아군 사격 등 외부 조건을 고려하지 않으며, 추후 사용을 위해 수정된 HealthData를 반환하지도 않습니다. 이러한 제한은 히트를 계산할 수 있는 맞춤형 환경을 제공하는 HitSystem에 의해 어느 정도 완화됩니다. ISignalModifyHealthNoReportHealthSystemHealthData를 수정할 수 있도록 제공하는 방법입니다. 이 경우 HealthData가 참조로 전달되므로 첫 번째 히트 통과 후 추가 처리가 가능합니다. HealthData를 참조로 전달하면 실행 제어가 호출 메소드로 리턴될 때 구조체 내부의 속성이 계산됩니다. 그러나 처리 후 HealthSystem.ReportHealthModified()을 최종 HealthData와 함께 수동으로 호출해야 한다는 의미입니다.

Health 컴포넌트는 IsInvulnerableIsRevivable을 지원하며, 이 컴포넌트들은 언제든지 설정할 수 있습니다.

HealthData

HealthData에는 다음의 속성들이 포함되어 있습니다:

  • Type ( 필수 ): 영향을 받는 대상을 정의하는EHealthType - 체력 / 실드 / 체력과 실드
  • Action ( 필수 ): 어떤 행동을 할지 정의하는 EHealthAction - 추가 / 제거 / 모두 제거 / 킬 / 재생
  • Result ( 자동 ): EHealthActionResult - 없음 / 적용됨 / 무시됨
  • Target ( 필수 ): 체력이 변경된 엔티티
  • Source ( 필수 ): 수정 요청을 생성한 엔티티 (예, 발사체)
  • Instigator ( 필수 ): 체력 변화를 발생시킨 엔티티 (예, 에이전트 - 무기의 소유자 / 변화를 유발 하는 발사체)
  • DesiredAmount ( 필수 ): 원하는 값
  • AppliedAmount ( 자동 ): 적용된 값, 내부 컴포넌트 상태에 기반한 실제 변화
  • IgnoreMax: true로 설정하면, 체력 / 방패 속성들은 최대 제한을 넘을 수 있음
  • HasDied ( 자동 ): 엔티티가 죽었는지를 나타냄
  • HasRevived ( 자동 ): 엔티티가 부활했는지를 나타냄
  • WasDamaged ( 자동 ): 엔티티가 피해를 입었는지를 나타냄
  • WasHealed ( 자동 ): 엔티티가 치료되었는지를 나타냄

노트: 필수 로 표기된 모든 필드들은 HealthDataISignalHit으로 전달하기 전에 값이 할당되어야 합니다. 자동 으로 표시된 모든 필드는 ISignalModifyHealth 안에서 자동으로 설정됩니다.

ReportHealthModified

HealthSystem.ReportHealthModified()Health 컴포넌트의 변경 사항을 리포트할 때 사용됩니다. 이 메소드는 ISignalModifyHealthNoReport 후에 호출할 수 있습니다.

주의: ISignalModifyHealth는 직접 호출하지 않아야 합니다. 대신 HitSystem을 사용하세요.

HealthSystem은 변경 사항을 리포트하기 위해 다음과 같은 신호 이벤트 쌍을 지원합니다:

  • ISignalOnHealHeal
  • ISignalOnDamageDamage
  • ISignalOnDeathDeath (동기화된 이벤트)
  • ISignalOnReviveRevive (동기화된 이벤트)
Back to top