
이번에는, Class를 들고올 것이다.
Object를 들고오는 부분과 비슷하지만, 매개변수의 타입 자체가 다르다.
Q) 왜 타입이 다를까?
자산 객체는 메모리에 로드되어 실제로 사용할 수 있는 리소스다. T**와 같은 타입을 사용하여 객체 인스턴스를 반환하고, 자산을 직접 사용할 수 있습니다.
클래스는 객체를 생성할 수 있는 템플릿이므로, TSubclassOf 타입을 사용하여 해당 클래스의 메타데이터만 로드한다.
Animation C++파일 새로 생성하기

'모든클래스 표시' 체크

생성하면...?
Anim Instance를 상속받는 C++ 클래스가 추가되는 부분!

하지만, 이전에 했던 방식과 동일하게 블루프린트 클래스를 생성하면 안된다.
이유)

생성된 블루프린트 클래스에 "Anim Graph"가 없다.
그러면 어떻게 해야하나?

그냐 깡으로 블루프린트 > 애니메이션 블루프린트를 생성

이렇게 생성된 애니메이션 블루프린트(ABP)는 Anim Graph가 있음! (잘된거임 ㅋㅋ)

아까 AnimInstance를 상속받는 C++ 애니메이션 클래스가 잘 들어온 모습을 볼 수 있음
우선) BluePrint 에서 Animation 같은경우
기본적으로 들어가는 이벤트중 가장 대표적인
"BeginPlay"와 "BluePrint Update Animation"이벤트가 C++에서는 사용되지 않고,
그 대신 "Native BeginPlay"와 "Native Update Animation"이 들어간다.

1. 아까 AnimInstance를 상속받음을 나타낸다.
2. NativeBeginPlay(), NativeUpdateAnimation()을 사용한다.
우선, Reflection을통해 UFUNCTION을 BlueprintImplementableEvent 형태로 Test()함수를 만들어주었는데,
이는 C++에선 함수명으로 들어간다.

BluePrint에서는 이런느낌이라고 생각하면 됨...!!
BlueprintImplementableEvent : C++ 클래스 내에서 선언한 이벤트를 블루프린트에서 구현할 수 있게 해주는 옵션
또한, Reflection을 통해 UPROPERTY로 외부에서 수정 불가능하게 또 읽기전용의 옵션을 추가하고 이를 Animation이라는 카테고리에 지정해서

Speed 변수를 나타내주었다.