float UGameplayStatics::ApplyDamage(
    AActor* DamagedActor, // 피해를 입은 대상
    float BaseDamage, // 피해량
    AController* EventInstigator, // 피해를 입힌 대상
    AActor* DamageCauser, // 피해를 준 액터 (수류탄, 칼 등등)
    TSubclassOf<UDamageType> DamageTypeClass) // 피해의 종류 (범위공격, 헤드샷 등)

 

ApplyDamage 호출 시, DamagedActor의 TakeDamage가 호출이 된다.

 

 

ApplyDamage 호출 시 OnTakeAnyDamage에 등록된 메소드가 호출된다.

 

TakeDamage 함수는 오버라이딩이 가능하므로 여러가지 커스텀 대미지 이벤트를 사용할 수 있을것이다.

 

Any, Point, Radial 3가지 타입이 있는데 3브랜치가 아닌 Point, Radial 브랜치를 수행해서 데미지를 계산한 다음 Any를 처리하는 방식이다.

예를 들어 Point 타입인 경우 헤드샷이면 데미지의 배율을 2배로 늘리고 Any를 수행한다거나 Radial 타입인 경우 범위 거리에 따른 데미지 편차를 계산 후 Any를 수행하는 방식이다.

 

 

http://egloos.zum.com/ldw9981/v/4163717

https://3dmpengines.tistory.com/1579

https://www.unrealengine.com/ko/blog/damage-in-ue4

 

'언리얼 엔진 > 정보' 카테고리의 다른 글

커스텀 CharacterMovement  (0) 2022.10.12
FTimerDelegate에 관련된 내용  (0) 2022.10.11
Actor, Pawn, Character  (0) 2022.10.04
[UE5] 포스트 프로세싱  (0) 2022.10.01
[UE5] 루멘  (0) 2022.09.29

+ Recent posts