• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

24.05.06 15:41 작성 24.05.06 15:41 수정 조회수 53

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

질문자

2024.05.06

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

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

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

themoon007님의 프로필

themoon007

질문자

2024.05.06

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