인프런 커뮤니티 질문&답변

themoon007님의 프로필 이미지
themoon007

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

12강 행동트리 모델의 구현

Parallel 컴포짓의 태스크 실행 질문..

작성

·

113

·

수정됨

0

Main 인 Attack task는 Inprogress 반환이라도 딱 한번만 호출되는데요.

 

같이 실행되는 TurnToTarget task는 Succeeded를 반환해도 매 프레임 여러 번 호출되는 것 같습니다.

 

여기서 어떤 규칙이 있는 건가요??

Parallel 컴포짓이 main task가 inprogress 일 동안에는

매 프레임 sub task 의 ExecuteTask()를 호출 하는 방식인가요??

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

메인 Task가 유효하는 동안 두 번째 SubTask는 계속 호출되는 구조입니다.
Attack Task의 경우 일정 시간이 지나야 종료됩니다. 그래서 InProgress 방식이지요.
반면에 TurnToTarget은 바로 호출되기때문에 매 프레임마다 호출됩니다.
따라서 Attack Task가 마무리될 때까지 TurnToTarget은 매 프레임마다 계속 호출됩니다.

소스코드에는 다음과 같은 설명이 있습니다.

* Simple Parallel composite node.
* Allows for running two children: one which must be a single task node (with optional decorators), and the other of which can be a complete subtree.

 

themoon007님의 프로필 이미지
themoon007
질문자

음... 그럼 subTask의 반환 값은 아무 의미가 없는 건가요??

Succeeded / Failed / InProgress 무슨 값을 반환 해도 계속 그냥 호출되는 건가요?

이득우님의 프로필 이미지
이득우
지식공유자

SubTask는 현재 예제에서는 InProgress가 아닌 바로 Suceeded를 리턴해 종료시키기 때문에 프레임마다 호출되고 있습니다.
위 설명에도 써져있지만 메인 태스크가 활성화되는동안 서브트리는 계속 호출됩니다.

themoon007님의 프로필 이미지
themoon007
질문자

이해가 된 것 같습니다. 감사합니다.

themoon007님의 프로필 이미지
themoon007

작성한 질문수

질문하기