본문 바로가기

유니티

[Behavior Designer] 05 . TASKS

[TASKS]

[TASKS]

BT는 Task의 모음이다 . Task는 Unity의 MonoBehavior와 비슷한 API가 있다.Task class는 해당 API를 가지고 있다.

//비헤이비어 트리가 활성화되면 OnAwake가 한 번 호출됩니다. 그것을 생성자로 생각하십시오.
void OnAwake();

// OnStart는 실행 직전에 호출됩니다. 이전 실행에서 재설정해야 하는 변수를 설정하는 데 사용됩니다.
void OnStart();

// OnUpdate는 실제 작업을 실행합니다
TaskStatus OnUpdate();

// OnFixedUpdate는 FixedUpdate 루프 중에 실행됩니다. TaskStatus는 OnUpdate 내에서 반환되어야 합니다
void OnFixedUpdate();

// 성공 또는 실패 시 실행 후 OnEnd가 호출됩니다. 
void OnEnd();

// 비헤이비어가 일시 중지되거나 다시 시작되면 OnPause가 호출됩니다.
void OnPause(bool paused);

//Priority Selector에서 사용하는 작업의 우선 순위를 반환합니다
float GetPriority();

// Utility Theory의 Utility Selector에서 사용하는 작업의 유틸리티를 반환합니다.
float GetUtility();

// 비헤이비어 트리 실행이 완료된 후 OnBehaviorComplete가 호출됩니다.
void OnBehaviorComplete();

// 공용 속성을 재설정하기 위해 Inspector가 OnReset을 호출합니다
void OnReset();

// OnDrawGizmos가 작업에서 호출되도록 허용합니다.
void OnDrawGizmos();

//  이 작업을 소유하는 동작에 대한 참조를 유지합니다
Behavior Owner;

[Task의 속성]

  • name : 이름
  • comment: 코멘트
  • instant:작업이 성공 / 실패를 반환하면 업데이트 Tick 내에서 즉시 다음 작업으로 이동한다 . 만약 Instant 체크가 해제되어 있다면 다음 작업이 실행되기 전에 다음 업데이트 Tick을 기다린다.

=>Taks의 실행은 다음 순서도가 사용된다 .