먼저 C++ 클래스중 Actor클래스를 추가하면
1. #include 를 통해 GameFramework에 Actor.h 를 include해서 자식클래스를 만들준비함
2. MyActor.generated.h도 같이 생성되며 include 한다
3. UCLASS()메크로를 통해 언리얼의 클래스임을 설명하고 AActor이라는 Actor.h에 있는 클래스를 부모로 설정한후 자식으로 A접미사를 붙여서 AMyActor 클래스를 생성한다 (+ 모듈명_API 도 자동생성됨ㅎ)
그리고 GENERATED_BODY() 매크로를 통해 몸을만들어주고
UFUNCTION(블루프린트에서 호출가능, 카테고리) 매크로로 void CalculateDPS라는 자체함수 만들기
또는 AActor의 자식클래스 이므로 부모클래스안에 있는 PostInitProperties() 함수 <- 변수가 초기화될때 호출되는 함수임
를 사용하고 싶다면 virtual 과 override를 같이 사용하여 AActor안에 있는 함수를 불러와서 덮어씌워 사용가능
이후 함수 정의단계에서 Super:: 을 사용하여 AActor클래스에서의 PostInitProperties()를 호출후
CalculateDPS()를 호출하도록 override하여 기능을 추가할 수 있다.
마지막으로 C++ 에서 만든 클래스를 기반으로 블루프린트 클래스를 생성 후
블루프린트에서 이렇게 함수를 호출하거나 변수를 조정할 수 있음
이런 UFUNCTION매크로 안에 BlueprintImplementableEvent 를 넣어서 블루프린트에서 디자이너가 디자인하도록 하는 방법도 있음
이렇게 블루프린트에서 디자인 가능
추가적으로 BlueprintNativeEvent를 사용하면 virtual 함수를 추가적으로 만들어서 블루프린트에서 호출안하면 cpp에서 코더가 정의한 코드로 실행가능하도록 구현 가능 (변수의 초기값처럼)
+ virtual 이랑 _Implementation() 붙여줘야 함
또한 부모함수로의 호출 추가를 만들어서 코더가 cpp에서 정의한 코드랑 디자이너가 블루프린트에서 만든코드 동시 사용가능!! (노드 순서로 호출순서 조정)
'자기개발 > Unreal Engine' 카테고리의 다른 글
Actros, Components에 대하여 (0) | 2021.07.29 |
---|---|
언리얼에서 모듈이란 (0) | 2021.07.18 |
Coding Standard (0) | 2021.06.23 |
Sky Atmosphere & Fog tip (0) | 2021.06.21 |
Unreal Network 정리 (0) | 2021.06.21 |