public
: 어떤 클래스에서도 접근 가능protected
: 해당 클래스 또는 해당 클래스를 상속받는 클래스에서만 접근 가능private
: 해당 클래스에서만 사용 가능하고 외부에서 접근 불가능private
접근 한정자 사용 시 UPROPERTY에 BlueprintReadWrite
나 BlueprintReadOnly
등을 사용하여 블루프린트에 노출시킬 수 없다.#include
로 해당 클래스를 선언해야 한다.단, 클래스 변수를 단순하게 선언만 할 경우 초기화가 되지 않아서 컴파일 오류가 발생한다. 이를 정상적으로 처리하기 위해서는 생성자를 통해 초기 값을 지정해주거나, 생성된 클캐스 변수를 포인터를 통해 참조하는 방식으로 사용해야 한다.
위를 이용해 월드에 배치되어 있는 오브젝트의 클래스를 포인터를 사용해 참조하여 사용가능하다.
1) 헤더 파일에 참조하고자 하는 클래스의 포인터 변수
를 선언한다.
class
키워드를 붙인다. 이는 원래 클래스 변수를 만들기 위해서는 #include를 사용해 해당 클래스를 포함시켜야 하는데, 이를 생략하기 위해 class
키워드를 붙여 표시하는 것이다.(== 클래스 전방 선언)2) 월드에 배치되어 있는 오브젝트의 Details에서 클래스 변수가 가리킬 클래스 오브젝트를 선택할 수 있다.
3) 포인터 변수가 가리키는 클래스의 멤버 변수들을 참조할 수 있다. ( 즉, 주소 == 오브젝트
, 주소에 저장된 값 == 클래스
라고 생각하는 것이 편하다)
멤버 변수를 가리키는 방법은 일반 클래스 변수인지, 포인터 변수인지에 따라 나뉜다.
일반 변수
: 변수이름.멤버변수이름
ATestActor testActor;
testActor.num1 = 0;
포인터 변수
: 변수이름->멤버변수이름
(포인터 변수가 가리키는 클래스의 멤버 변수)//헤더 파일
class ATestActor* testPointer;
//소스 파일
testPointer->num1 = 0;