https://docs.unrealengine.com/5.0/ko/unreal-engine-cpp-quick-start/
헤더 파일의 클래스에는 A**** 형식으로 내가 지어준 이름의 값이 뒤에 들어감 => Actor 라는 뜻
클래스의 시작과 GENERATED_BODY 사이에는 값을 써주지 않는다
=> 엑터 클래스
https://docs.unrealengine.com/5.0/ko/unreal-engine-uproperties/
UPROPERTY(EditAnywhere, Meta = (Bitmask, BitmaskEnum = "EColorBits"))
int32 ColorFlags;
이런 식으로 변수를 선언할 때 이 변수의 지정자를 놓을 수 있다
EditInstanceOnly
: 맨처음 선언할때만 값을 지정하게 한다BlueprintCallable
: 블루프린트에서 이 변수를 사용할 수 있다동일한 계열의 선언은 한번만 가능하다. ex) EditAnywhere / EditDefaultsOnly 은 동시에 선언이 불가능하다
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/GameplayArchitecture/Functions/
함수도 똑같이 프로퍼티를 지정할 수 있다
int32 maxCountDownTime = FMath::Max(CountDownTime, 0);
FString text = FString::FromInt(maxCountDownTime); //1, Fstring
FString text = FString::Printf(TEXT("%d"), maxCountDownTime); // 2, FText
CountText->SetText(text);
텍스트 값을 변경할 때는 FText, FString 두 개의 값을 넣을 수 있다.
화면에 텍스트를 띄우고 변경해보았다
UFUNCTION(BlueprintCallable) //블루프린트에서 호출 가능함. 정의는 코드에서
void BluePrintCallableFunc();
UFUNCTION(BlueprintImplementableEvent) //블루프린트에서 정의함
void BlueprintImplementableEventFunc();
UFUNCTION(BlueprintNativeEvent) //블루프린트와 C++ 코드에서 모두 수정 가능함
void BlueprintNativeEventFunc(); //블루프린트에서 정의
void BlueprintNativeEventFunc_Implementation(); //C++ 코드에서 정의
이런 식으로 프로퍼티를 다르게해서 BP와 C++을 섞어서 코딩할 수 있다
함수를 정의해놓음으로써 BP에서 코드 내부를 구하더라도 호출은 C++ 코드에서 할 수 있다
함수를 여러개 호출해보면 어떻게 호출할 수 있는지 알 수 있다