이제는 C++를 이용해서 액터의 변수에 접근하고 액터의 상태를 변경시키는 방법을 알아보자.
클래스의 멤버 변수를 만들듯이 액터에도 프로퍼티를 추가할 수 있다.
기본적으로 변수 앞에 UPROPERTY()
를 작성해 주고, 변수를 선언해 준다. 괄호 안에는 프로퍼티 메타데이터와 변수 지정자를 붙여 선언할 수 있다. 너무 자세하게는 아직 다루지 않기로 하고 우선 EditAnywhere
로 지정해 주면 디테일 패널에서 프로퍼티를 지정할 수 있다는 정도만 알고 넘어가면 좋을 듯하다.
UPROPERTY(EditAnywhere)
int32 myInt = 99;
위와 같이 작성 후 컴파일해 보면
my Int라는 이름의 변수를 디테일 패널에서 확인할 수 있다.
블루프린트 프로그래밍에서 사용하던 노드와 같은 이름의 함수가 존재한다.
UPROPERTY(EditAnywhere)
FVector myVector = FVector(1, 2, 3);
가령 이런식으로 벡터를 만들고,
Set Actor Location 노드를 그대로 사용하고 싶으면, 첫 글자를 대문자로 한 카멜케이스 함수로 작성하면 된다. 다음과 같은 함수를 BeginPlay 함수 아래에 작성하고 실행해 보자.
SetActorLocation(myVector);
아래와 같이 Location이 myVector의 값인 (1, 2, 3)으로 조정된 것을 볼 수 있다.
변수를 사용하지 않더라도 SetActorLocation(FVector(1, 2, 3))
와 같이 바로 생성자를 집어넣어도 된다.