// 일반 정수(short 2byte, int 4byte, long 4byte)
short s;
int i;
long l;
// 비트 수에 따라
int8 i8;
int16 i16;
int32 i32;
int64 i64;
// 양수만
uint8 ui8;
uint16 ui16;
uint32 ui32;
uint64 ui64;
// 실수 (float 4byte, double 8byte)
float f;
double d;
// 문자열
// 저장되는 문자열 길이에 따라 메모리 크기 자동 조절
// 텍스트 매크로 사용해야함.
FString fstr;
// 논리변수
bool b;
언리얼 에디터에서 변수값들을 수정하려면 다음과 같이 UPROPERTY() 라는 것을 사용해줘야한다.
MyActor.h
// EditAnyWhere : 아키타입(아직 인스턴스화 되지않은 블루프린트 원본)과 인스턴스 프로퍼티 양쪽에서 모두 편집 가능
// BlueprintReadWrite : 블루프린트에서 편집 가능
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage")
int32 TotalDamage;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Damage")
float DamageTimeInSeconds;
// BlueprintReadOnly : 블루프린트에서 읽기만 가능
// VisibleAnywhere : 모든 프로퍼티 창에서 보이지만 편집은 불가능
// Transient : 휘발성 프로퍼티로 저장되지 않음.
UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Transient, Category = "Damage")
float DamagePerSecond;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString CharacterName;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
bool bAttackable;
언리얼 에디터에서의 결과창

초기값을 입력해주려면, MyActor.cpp 의 생성자 함수에서 처리해준다.
AMyActor::AMyActor() : TotalDamage(10), DamageTimeInSeconds(1.2f)
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
UE_LOG(LogTemp, Log, TEXT("Constructor"));
DamagePerSecond = TotalDamage / DamageTimeInSeconds;
CharacterName = TEXT("Nickname");
bAttackable = true;
}
함수 이름 옆에 : 를 붙이고 값을 넣어주는 방법과
함수 안에서 직접 대입해주는 방법이 있다.
컴파일 결과 다음과 같이 초기값이 지정되었다.

(출처 : 베르의 게임개발 유튜브, https://youtu.be/VyYqyVe3vQI?si=nc8eLhiFG9dfwuJn)
| if(kakaoAI)2024 DAY3 후기 (2) | 2024.10.25 |
|---|---|
| [Unreal] Actor 클래스 (0) | 2024.01.31 |
| [안드로이드-코틀린] Adding a RecyclerView to your app (0) | 2021.07.16 |
| [AndroidStudio-Kotlin] View Binding 뷰 바인딩 (0) | 2021.07.13 |
| 안드로이드 스튜디오 TIPS (0) | 2021.07.12 |