다른 타입의 변수들과 달리 오브젝트 타입의 변수는 변수 안에 값이 직접들어 있는 것이 아닌 실제 오브젝트를 참조(레퍼런스)하는 변수입니다.
그 중 오브젝트 레퍼런스는 오브젝트를 참조하는 변수, 클래스 레퍼런스는 클래스를 참조하는 변수라고 생각하면 됩니다.
블루프린트에서 함수를 사용할 경우 오브젝트 레퍼런스를 인자로 받는 함수는 오브젝트 레퍼런스로 선언된 변수를 받아야 하지만
클래스 레퍼런스를 인자로 받는 함수는 위의 사진과 같이 클래스를 지정하여 사용할 수 있습니다.
void AddWeaponToInventory(class APCEWeaponBase* Weapon);
평소에 포인터로 인자를 받는 오브젝트 레퍼런스를 사용하는 함수의 경우 위와 같이 작성하지만 클래스 레퍼런스의 경우 다음과 같이 작성합니다.
void AddWeaponToInventory(TSubclassOf<class APCEWeaponBase> Weapon);
그리고 클래스 레퍼런스를 받은 경우 이 클래스 안의 변수나 함수를 사용할때는 .GetDefaultObject() 함수를 사용해야 클래스 안의 변수나 함수를 사용할 수 있습니다.
Weapon.GetDefaultObject()->OnAttackTrace();
'Unreal Engine > C++' 카테고리의 다른 글
[Unreal Engine 4 C++] C++로 Timeline 구현하기 (2) | 2021.04.26 |
---|---|
[Unreal Engine 4 C++] InputComponent의 BindAction함수에 인자가 있는 함수 바인드하기 (0) | 2021.04.15 |
[Unreal Engine4 C++] 클래스의 헤더파일을 전방 선언할 수 있는 조건 (0) | 2021.04.12 |
[Unreal Engine4 C++] Delay 구현 (0) | 2021.04.06 |
[Unreal Engine 4 C++] Interface C++에서 구현하기 (0) | 2021.03.24 |