BTTasks 실행하기
이제 Task 기능을 직접 실행해보자.
현재 우리가 필요한 기능은 선택된 블랙보드 키 값을 지우는 것이다.
우선 베이스 클래스에 어떤 내용이 존재하는지 알아보자.
Blackboardbase 헤더에서 UBTTaskNode를 선택하고 F12를 누르면 해당 내용을 볼 수 있다.
그럼 상단에 다음과 같은 함수들을 볼 수 있다.
4개를 순서대로 간단히 살펴보면,
ExecuteTask가 Task를 실행하는 것이고, AbortTask는 Task 중단, TickTask는 매틱마다 Task 실행, Onmessage는 Task에 메시지를 보낼 때 사용된다.
우리가 주로 봐야할 것은 위 3가지 함수이며, 여기서 사용하게 될 것은 단순 실행하는 ExcuteTask가 된다.
이어서 CPP에 작성해주자.
#include "BehaviorTree/BlackboardComponent.h" 에 속한 함수로 GetBlackboardComponent 함수 및 ClearValue 함수를 사용한 적이 있다.
여기서 이를 또 그대로 사용해줄 것이고, OwnerComp를 통해 호출하게 된다.
그리고 기존에 해당 헤더가 없으므로, 헤더를 선언해주는 것을 잊으면 안된다.
그리고 ExecuteTask는 반환 값을 가지는데, EBTNodeResult에서 F12를 누르고 자세한 내용을 살펴보면 다음과 같다.
간단히 설명하자면 작업 성공 여부, 실패여부, 작업 진행 여부를 나타낸다.
우리가 필요한건 작업 성공 여부이므로 해당 내용을 반환해주도록 한다.
성공 여부를 반환하면 무사히 다음 노드로 넘어가고, 실패 여부를 반환하면 대안 노드로 따라갈 수 있다.
이제 컴파일하고 실행해보면 플레이어가 시야가 보이면 계속 따라오다가,
시야에서 사라지면 마지막에 있었던 위치까지 움직인 이후에 해당 위치값이 사라지고 5초 동안 기다렸다가 시작점으로 되돌아가게 된다.
'Unreal > Udemy 강의' 카테고리의 다른 글
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-36 (0) | 2024.07.14 |
---|---|
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-35 (0) | 2024.07.14 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-33 (0) | 2024.07.12 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-32 (0) | 2024.07.11 |
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-31 (0) | 2024.07.10 |