UE4

[UE4] 캐릭터 스텟 컴포넌트 만들기

Honey Badger 2022. 11. 12. 02:53

   캐릭터 스텟 컴포넌트를 만들어 이를 캐릭터에 부착해 캐릭터 스텟에 대한 관리를 액터 컴포넌트가 일임하도록 기능을 구현해보자. 먼저 Actor Component를 부모로 하는 새로운 클래스를 하나 생성해준다. 그리고 MyCharacter클래스에 해당 컴포넌트를 멤버 변수로 선언한다. 

UPROPERTY(VisibleAnywhere, Category = Stat)
class UMyCharacterStatComponent* CharacterStat;

선언한 변수에 새롭게 Object를 생성해 대입해준다.

CharacterStat = CreateDefaultSubobject<UMyCharacterStatComponent>(TEXT("CHARACTERSTAT"));

 

액터의 PostInitializeComponents에 대응하는 컴포넌트의 함수는 InitializeComponent이다. 이 함수는 액터의 PostInitializeComponents함수가 호출되기 직전에 호출된다. 이 함수가 호출되려면 생성자에서 bWantsInitializeComponent값을 true로 설정해줘야 한다. 

PrimaryComponentTick.bCanEverTick = false;
bWantsInitializeComponent = true;

 

  캐릭터의 모든 스탯을 MyStatComponent에서 관리하도록 변수를 추가로 선언한다. 데이터를 관리하는 변수들은 private으로 한정해 선언하고 레벨은 SetNewLevel 함수를 통해서만 변경할 수 있도록 설계한다. GameInstance에서 Data를 가져와 초기화하고 레벨이 변경되면 해당 스탯이 바뀌도록 코드를 제작한다. 

'UE4' 카테고리의 다른 글

[UE4] UPROPERTY  (0) 2022.11.12
[UE4] Unrecognized type Error 해결법  (0) 2022.11.12
[UE4] CSV 데이터 불러오기  (0) 2022.11.11
[UE4] 이펙트 구현하기  (0) 2022.11.11
[UE4] 아이템 상자 제작  (0) 2022.11.11