티스토리 뷰

프로그래밍 공부/언리얼 4

Unreal 4 입문 #3

빅토리아레몬탄산수 2021. 7. 29. 14:28

언리얼에서 오브젝트가 추가 될때 호출 되는 함수는 PostInitProperties()

프로퍼티가 수정될때 호출되는 함수는 PostEditChangeProperties()

위 두함수는 AMyActor의 부모클래스인 AActor에서 상속 받은 함수이기때문에 부모클래스의 함수를 자식클래스에서 덮어쓴다는 의미로 virtual override 키워드를 함께 사용해줘야합니다. 컨트롤 + Dot(.)을 누를 시 cpp에 함수를 정의해줍니다.

Super::PostInitProperties()

Super 클래스는 클래스가 상속받은 부모 클래스에 있는 기본 프로퍼티나 함수를 가져오는데 사용되는 키워드입니다.

이런작업을 해주는 이유는 전에 부터 하는 작업을 다시하도록 만든것입니다. 함수 또한 블루프린터에서 볼 수 있도록 설정하려면 UFUNCTION을 이용한다.

(BlueprintCallable 라고 설정하고 Category = "~"를 반드시 적어줘야합니다.

 

블루프린터에서 디자이너와 협력 시 디자이너가 만들어논걸 기능 구현을 하는 방법은 두가지가 있습니다.

첫 번째로 블루프린트 맨터블 방식 헤더에서만 함수선언 UFUNCTION에서 BlueprintImplementable 를 사용합니다. 요기서 알 수 있듯이 언리얼은 자체 함수의 기능이 관련있는건 앞에 이름이 붙는거 같습니다. Event를 설정 후 함수 형식의 기본 이름 반환형만 설정 후 블루프린터로 갑니다. (cpp엔 정의 안합니다.) 그리고 블루프린터에서 오른쪽 클릭 자신이 정한 카테고리에 있는 함수 이름을 생성해 블루프린터에서 기능을 구현합니다. 디자이너가 블루프린터로 만든 기능을 프로그래머가 cpp파일로 호출 하는 방식, 블루프린터에서 기능을 만들어놓지 않으면 빈 함수를 호출하는 방식으로 동작하게 됩니다.

두 번째로 블루프린트네이티브 이벤트 지정자는 디자이너가 블루프린터로 기능을 만들 수 있게하면서 만약 디자이너가 블루프린터에서 기능을 구현하지 않으면 동작할 기본 기능을 프로그래머가 cpp로 만들 수 있게 됩니다. 

BlueprintNativeEvent를 사용합니다. 그리고 virtual void 함수이름_Implementation 가상 함수를 구현해주고 cpp에 기본 기능을 구현한 함수를 정의해줍니다. 이런식으로 하면 블루프린트내에서 구현하지 않아도 cpp에 구현해논 함수가 작동합니다.

하지만 기본 함수와 블루프린터에서 작동하고 하고 있는 함수 둘 다 호출하고 싶을땐 함수이벤트 생성 후 함수 이벤트에 오른쪽 클릭 부모 함수의 호출 추가를 누르면 부모:함수 이름을 가진 노드가 생성됩니다. 그리고 호출 순서를 생각하여 하고 싶은대로 이어주면 됩니다. 이런식으로 협업의 용이합니다.

'프로그래밍 공부 > 언리얼 4' 카테고리의 다른 글

Unreal 4 입문 #2  (0) 2021.07.21
Unreal 4 입문 #1  (0) 2021.07.20
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함