본문 바로가기
프로그래밍/Unreal Engine4

UPROPERTY, UFUNCTION, UENUM, meta.. 지정 매크로

by 눈야옹 2016. 3. 25.

Class UCLASS 키워드


1. BlueprintType = C++ 클래스를 블루프린트에서 변수로 선언이 가능한 타입으로 지정

2. Blueprintable : 블루프린트에서 C++ 클래스를 상속가능


==============================================================================================


변수 UPROPERTY 키워드


1
2
3
4
5
6
 
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Power")
    float InitialPower;
 
UPROPERTY(VisibleAnywhere, Category = "Power")
    float CharacterPower;
cs

첫 번째 지정자

1. BlueprintReadWrite = 블루프린트에서 읽고 쓰기가 가능

2. BlueprintReadOnly = 블루프린트에서 읽기만 가능(값이 항상 고정된다.)


두 번째 지정자

Edit = 편집 가능한지, Visible = 보여주기만 할 것인지

DefaultsOnly = 클래스 설계도에서만 

InstanceOnly = 인스턴스 마다 

Anywhere = 둘다.


1. EditDefaultsOnly

2. VisibleDefaultsOnly

3. EditInstanceOnly

4. VisibleInstanceOnly

5. EditAnyWhere

6. VisibleAnyWhere


세 번째 지정자

Category = "Power" = 카테고리가 Power로 들어가 있어서 디테일 창이나 에디터 창에서 power을 검색하면 쉽게 찾을수 있다.


네 번째 지정자

1
2
    UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Stat", meta = (AllowPrivateAccess="true"))
    float BaseDamage;
cs

C++를 상속 받는경우 public이나 protected 변수만 사용가능하지만 AllowPrivateAccess= true로 할 경우 Accessor를 통해서 사용할 수 있다.

이럴경우 OOP(Object-Oriented Programming , 객체지향 프로그램) 설계를 따르면서 변수에 접근 또한 가능해 진다.

객체 지향과관련하여...

OOP = SOLID https://gmlwjd9405.github.io/2018/07/05/oop-solid.html

블로깅 당시 버전 = 언리얼 4.10 버전, 2.18 버전

==============================================================================================


UFUNCTION 매크로 관련


1. BlueprintCallable  = 블루 프린트에서 호출이 가능하다. 하지만 블루프린트에서 편집이 가능하지 못하다.

*이 매크로를 사용하려면 뒤에 Category 를 지정해주어야 오류가 나지 않는다.

Category 지정시 |키를 이용하여 하위 경로를 지정할수 있다



2. BlueprintImplementableEvent = c++가 아닌 블루 프린트에서 작성되는 함수이다.

3. BlueprintNativeEvent = 위 두가지를 합친것인데 프로그래밍 코드를 블루프린트로 덮어 씌울수 있다. 함수명 +"_Implementation"을 붙여준다.

ex) 

class TestActor

void TestFunc(); // 1번

virtual void TestFunc_Implementation(); //2번

TestActor을 블루프린트로 전환했을 경우 TestFunc을 불러와서 그래프에서 함수 내부를 설계해주면 된다. 하지만 만약

함수를 불러왔는데 내부 구현을 해주지 않았다면 TestFunc_Implementation 이 호출된다.


함수 혹은 프로퍼티의 설명이 나오게 해주는 주석 처리



단 한글은 안된다


==============================================================================================


ENUM 매크로 관련


==============================================================================================


meta 관련

* 프로퍼티를 디테일 창에서 조절할 경우 값의 범위를 정해주는 방법



작성시 = 4.11.2 버전