UE - 플랫폼 게임 분석
UnrealEngine
DataTable
클래스의 DT_attackTable
, DT_Sword_attackTable
이 데이터 테이블의 사용처를 알기위해 분석해봤다.
사용처
BP_BaseAbility
BP_BaseAbility
에선 Throw
이벤트에서 사용한다.
이렇게 데이터 테이블의 데이터를 가져와
대상 BP_Fighter
의 Hit
함수의 매개변수로 사용한다.
BP_Damager
함수 FuncOverlapFighter
에서 사용하는데, BP_BaseAbility
와 비슷하게 Hit
의 매개변수로 사용된다.
생성 위치
BP_Fighter
BP_Fighter
에 맴버 변수로 사용된다.
리플리케이션 하진 않고, 기본값으로 DT_attackTable
을 사용하고 있다.
BP_BaseAbility
BeginPlay
에서 Set
할 때 (Parent
에서 AttackDataTable
을 가져와 Set한다.)
결론
어빌리티의 정보를 가져올 때 사용하는 데이터 테이블로, 네임 타입의 변수로 데이터를 가져와 Hit의 매개변수로 사용한다.
그럼 이 네임 변수는 어디서 가져오나?
BP_damageInfo
BP_damageInfo
의 Attack
이라는 변수에서 가져온다.
이 BP_damageInfo
는 BP_BaseAbility
를 상속받는 기술들에서 찾을 수 있다.
아래 이미지의 빨간 것들이 BP_damageInfo
다.
여기서 사용한 Attack
은 Damager
를 만들 때 설정한다.
여기서 Attack
네임을 설정해준다.
이걸 부모인 BP_BaseAbility에서 사용하기 위해 Construction Script 에서 Get All Child Actors 로 찾는다.
그 뒤 damageInfo의 Attack을 Attacks에 넣는다.