๐๏ธ C++๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๋ง๋ค์ด๋ณด์.
C++๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
๋ํ ์ด์ด์ C++๋ก ๋ง๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐ์ดํฐ ํ
์ด๋ธ์์ ์ฌ์ฉํ ์ ์๋๋ก ํด๋ณด๊ฒ ์ต๋๋ค.
C++๋ก ๊ตฌ์กฐ์ฒด ํ์ผ์ ์ธ๋ฆฌ์ผ ์๋ํฐ์์ ์์ฑํ์ง ์์ต๋๋ค.
VS์์ ์ง์ ํค๋ ํ์ผ์ ์์ฑํด์ผ ํฉ๋๋ค.
์ด๋, ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ์์ฑ ์ ํ์ผ ๊ฒฝ๋ก๊ฐ ์๋๋ก ์์ฑ๋ฉ๋๋ค.
Intermediate > ProjectFiles
์ด ๊ฒฝ๋ก๋ก ์์ฑ๋์๋ค๋ฉด ์๋ํฐ๋ฅผ ์ข ๋ฃํ๊ณ ํ์ผ์ Source > ํ๋ก์ ํธ๋ช > public๋ก ์ด๋์์ผ์ฃผ์ธ์.
์ฐ์ ํ์ผ์ ์์ฑํ๊ฒ ์ต๋๋ค.
public ์ฐํด๋ฆญ - ์ถ๊ฐ - ์ ํญ๋ชฉ์ ๋๋ฌ ์ฃผ์ธ์.
ํค๋ ํ์ผ ์ ํ - ์ด๋ฆ ์ค์ - ๊ฒฝ๋ก ์ค์ ๊น์ง ํ๊ณ ์ถ๊ฐํด์ฃผ์ธ์.
ํ๋์ฉ ํ๊ฒ ์ต๋๋ค.
์ฐ์ ํค๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์ธ๋ฆฌ์ผ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ๋ค์ด ์๋ CoreMinimal.h๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ํ์ผ๋ช .generated.h๋ฅผ ์ถ๊ฐํฉ๋๋ค.
#pragma once
#include "CoreMinimal.h"
#include "MyStructure.generated.h"
๊ทธ๋ฆฌ๊ณ ์๋์ UCLASS๋์ ์ USTRUCT๋ฅผ ๋ฃ์ด์ ์์ฑํฉ๋๋ค.
์ด์ด์ struct Fํ์ผ๋ช ์ผ๋ก ๊ตฌ์กฐ์ฒด ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
๊ตฌ์กฐ์ฒด๋ช ์ F๋ ํ์์ ๋๋ค!
์ด๋ ์ผ๋ฐ ํด๋์ค์ ๊ฒฝ์ฐ GENERATED_BODY()๊ฐ ์ฌ์ฉ๋์ง๋ง
๊ตฌ์กฐ์ฒด์ ๊ฒฝ์ฐ GENERATED_USTRUCT_BODY()๋ฅผ ์์ฑํด์ฃผ์ธ์.
USTRUCT(BlueprintType)
struct FMyStructure
{
public:
GENERATED_USTRUCT_BODY()
};
๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ ํด๋์ค์ ๋์ผํ๊ฒ UPROPERTY()๋ฅผ ์ฌ์ฉํ๊ณ ๋ณ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
#pragma once
#include "CoreMinimal.h"
#include "MyStructure.generated.h"
USTRUCT()
struct FMyStructure
{
public:
GENERATED_USTRUCT_BODY()
public:
UPROPERTY()
bool fTestBool;
UPROPERTY()
float fTestFloat;
};
์ด์ ๋ค๋ฅธ ํด๋์ค์์ MyStructure.h๋ฅผ ํค๋์ ์ถ๊ฐํด์ฃผ๋ฉด ํด๋น ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
USTRUCT์์ BlueprintType์ ๋ฃ์ด์ฃผ๋ฉด ๋ธ๋ฃจํ๋ฆฐํธ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ UPROPERTY()๋ ์ธ์๋ฅผ ๋ฃ์ด ์ฃผ๋ฉด ๋๊ฒ ์ฃ .
USTRUCT(BlueprintType)
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool TestBool;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float TestFloat;
๊ทธ๋ฆฌ๊ณ ๋น๋ํด์ฃผ๋ฉด ๋ธ๋ฃจํ๋ฆฐํธ์์๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒ์ํด๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ง๋ ๋ณ์๋ช
์ผ๋ก ๊ตฌ์กฐ์ฒด๊ฐ ์๋๊ฑธ ๋ณผ ์ ์์ฃ .
๋ณ์๊ฐ์ ์ง์ ๊ฐ์ ํ ๋นํ๊ฑฐ๋,
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool TestBool = false;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float TestFloat = 10.0f;
๋๋ ์์ฑ์๋ก ๊ฐ ์ธ์๊ฐ์ ๋ํดํธ๊ฐ์ ๋ฃ์ด์ค ์ ์์ต๋๋ค.
FMyStructure()
: TestBool(true)
, TestFloat(10.0f)
{};
์์ง๊น์ง ๋ฐ์ดํฐ ํ
์ด๋ธ์ ๊ฒ์ํด๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํ ์ด๋ธ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค.
DataTable.h ํค๋๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ ,
#include "Engine/DataTable.h"
FTableRowBase๋ฅผ ์์์์ผ์ฃผ๋ฉด ๋์ ๋๋ค.
struct FMyStructure :public FTableRowBase
๊ทธ๋ฆฌ๊ณ ๊ฒ์ํด๋ณด๋ฉด ์ฐ๋ฆฌ์ ๊ตฌ์กฐ์ฒด๋ก ๋ฐ์ดํฐ ํ
์ด๋ธ์ ์์ฑํ ์ ์์ต๋๋ค.
์์ฑํด๋ณด๊ณ ๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ง๋ ๋ณ์๊ฐ์ผ๋ก ๋ค์ด๊ฐ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง C++๋ก ์์ฑํ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐ์ดํฐ ํ ์ด๋ธ๋ก ๋ง๋๋ ๊ณผ์ ์ด์์ต๋๋ค.