게임 엔진/Unreal

[Unreal 4] 변수 및 프로퍼티 정리

niamdank 2022. 5. 29. 17:37

  언리얼 C++ 사용을 위한 기본 개념 

블루프린트 / C++ 매핑 타입

기본 매핑 타입

기본적으로 블루프린트에서는 unsigned를 사용하지 않는다.

블루프린트와 연동할 필요가 있는 변수는 uint류와 double을 사용하지 않도록 주의해야 한다.

Blueprint C++
Float float
- double
Integer int32
- uint32
Integer64 int64
- uint64
Bool bool

 

유틸리티 매핑 타입

Blueprint C++
String FString
Name FName
Vector FVector
Rotator FRotator
Transform FTransform

 

오브젝트 매핑 타입

Blueprint C++
Object UObject*
Actor AActor*
ActorComponent UActorComponent

 

자주 사용되는 클래스

Class #include
UWorld Engine/World.h
AActor GameFramework/Actor.h
UActorComponent Components/ActorComponent.h
UGameplayStatics Kismet/GameplayStatics.h
UKismetSystemLibrary Kismet/KismetSystemLibrary.h
FMath Math/UnrealMathUtility.h

 

변수 프로퍼티 지정자

변수에 사용되는 프로퍼티는 다음과 같다.

읽기 쓰기 권한, 접근 권한 그리고 블루프린트에서 접근 권한이 존재한다.

  Defaults Instance Blueprint
RO VisibleAnywhere BlueprintReadOnly
VisibleDefaultsOnly VisibleInstanceOnly
RW EditAnywhere BlueprintReadWrite
EditDefaultsOnly EditInstanceOnly

 

※ 쓰기 권한은 읽기 권한을 포함한다.

 

Defaults는 클래스의 디테일 창을 말하는 것이고 Instance는 월드 아웃 라이너의 애셋을 클릭했을 때 나오는 디테일 창을 말하는 것이다.

Blueprint는 블루프린트 창에서 노드로 해당 변수를 사용하는 방법을 정의하는 것으로 Defaults/Instance 설정과는 별개로 설정해 줘야 한다. 이 값을 설정해주지 않으면 해당 변수를 노드로 사용할 수 없다.

 

간단한 예제

  • VisibleDefaultsOnly 클래스 디테일 창에서 볼 수 있으나 수정 불가능, 월드의 디테일 창에서는 볼 수 없고 수정도 불가능
  • EditInstanceOnly 클래스 디테일 창에서 볼 수 없고 수정도 불가능, 월드의 디테일 창에서 볼 수 있고 수정도 가능
  • VisibleAnywhere 클래스 디테일 창, 월드의 디테일 창에서 볼 수 있고 수정은 불가능
  • BlueprintReadOnly 블루프린트 창에서 우클릭해 변수 검색 시 Get 함수만 사용 가능