처음에는 가장 베이스가 될 COECharacter클래스에 CharacterStats에 관련된 변수를 선언하려 하였으나 구초체로 구현하는 것이 더 적합할 것이라는 판단에 구현하던중 여러 Character 및 Enemy 클래스에서 활용하기에는 구조체 클래스를 하나 만드는 것이 적합하다는 판단에 FCharacterStats 클래스를 만들기로 결정 앞의 F는 언리얼 명명체계임
FCharacterStats 클래스 생성을위해 빈 C++클래스 생성
생성된 FCharacterStats.h에서 #include "CoreMinimal.h" #include "FCharacterStats.generated.h" 두개 만 남기고 다 삭제한다음 아래코드로 작성 #include "클래스명.generated.h" 가 가장 마지막에 선언되지않으면 빌드에 문제가 생김 → 몰라서 다른 문제인지 찾아보다가 GPT에서 알려줘서 고침
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "FCharacterStats.generated.h"
/**
*
*/
USTRUCT(BlueprintType)
struct FCharacterStats
{
GENERATED_BODY()
public:
/** HPMAX */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float MAXHP;
/** HP */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float CurrentHP;
/** Vitality */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float Vitality;
/** AttackPower */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float AttackPower;
/** Defense */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float Defense;
/** Agility */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float Agility;
/** Luck */
UPROPERTY(BlueprintReadOnly, Category = "Status")
float Luck;
};
//COECharacter 클래스에서 사용하기 위해 COECharacter.h에 #include "FCharacterStats.h" 추가
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "Logging/LogMacros.h"
#include "FCharacterStats.h"
#include "COECharacter.generated.h" //각 클래스의 generate.h가 가장 마지막에 선언 되어야함