1. PreAttributeChange
개념
PreAttributeChange는 Attribute가 변경되기 전에 호출됨.
- 이 함수는 속성 값의 범위를 제한(Clamping) 하는 데 주로 사용함.
- 실제 속성 변경이나 관련 로직을 처리하기에는 적합하지 않다.
주요 특징
- 속성 값 제한
- 예를 들어, 플레이어의
Health가 MaxHealth를 초과하지 않도록 제한하거나, Stamina가 음수로 내려가지 않도록 설정할 수 있음.
- 속성의 유효 범위를 보장.
2. PostGameplayEffectExecute
개념
PostGameplayEffectExecute는 GameplayEffect가 Attribute를 변경한 후 호출된다.
- 이 함수는 특정 속성의 변경을 감지하고, 변경된 속성에 반응하여 게임 로직을 실행하는 데 사용.
- 속성 변경의 원인과 관련된 세부 정보(data) 를 가져와 다양한 정보를 활용할 수 있음.
주요 특징
- 속성 변경 후 로직 처리
- 속성이 변경된 후 게임의 주요 메커니즘(예: 체력 회복, 피해 적용 등)을 실행할 수 있음.
- 변경된 속성 값과 변경량을 확인할 수 있음.
- 광범위한 데이터 접근
- 속성 변경의 원인과 대상에 대한 정보를 포함한 여러 데이터에 접근할 수 있음.
- 주요 데이터:
- 변경된 속성: 어떤 속성이 변경되었는지 확인.
- 변경량: 속성이 얼마나 변경되었는지 확인.
- Source(원인): 속성 변경을 유발한 엔티티.
- Target(대상): 속성이 변경된 엔티티.
- GameplayEffectSpec: 적용된 GameplayEffect의 사양(정의, 지속 시간, 크기 등).
- Game State와의 상호작용
- 게임의 현재 상태와 데이터를 기반으로 변경된 속성에 적합한 반응을 설정할 수 있음.
- Source와 Target의 구분
- Source: 효과를 유발한 주체(예: 공격자).
- Target: 효과를 받은 대상(예: 피해를 입은 플레이어).