class THIRDPERSON_API UEquipmentComponent : public UActorComponent
{
......
// For EquipmentState
friend class UEquipmentState;
friend class UMainState;
friend class USubState;
// SelectEquipment를 위한 상태 패턴
UPROPERTY()
UEquipmentState* EquipmentState;
// 각 상태 별로 단 한개의 인스턴스가 존재, 초기화 이후 인스턴스 수정을 막기 위해 실제 사용은 const 포인터 이용
UPROPERTY()
UMainState* MainStateInstance;
UPROPERTY()
UMainState* const MainState = MainStateInstance;
UPROPERTY()
USubState* SubStateInstance;
UPROPERTY()
USubState* const SubState = SubStateInstance;
.....
}
EquipmentComponent.h
EquipmentComponent에서 EquipmentState를 사용하는 경우
EquipmentState