Unity Engine

Behavior Tree - Node Canvas (1)

Aostols 2022. 6. 29. 10:48
반응형

 

 

NodeCanvas | 비주얼 스크립팅 | Unity Asset Store

Get the NodeCanvas package from Paradox Notion and speed up your game development process. Find this & other 비주얼 스크립팅 options on the Unity Asset Store.

assetstore.unity.com

ParadoxNotion 의 NodeCanvas를 기준으로 작성 하였습니다.

 

기본적인 구성 자체는 유니티의 다른 Behavior Tree 에셋이나 언리얼 엔진 것과 동일 합니다.

다만 특정 에셋기준으로 작업한 내용이기 떄문에 메소드 이름이 약간 씩 다를 수 있습니다.

 

 

 

Action

직접적인 행동을 수행 합니다.

EndAction() 이 호출 되어야 태스크가 완료 됩니다.

태스크가 호출되었을때 단발성으로 완료되는 것이라면 OnExecute에서 EndAction을 호출해 주면 바로 끝나게 되고 여러 프레임에 걸쳐서 업데이트 해야 한다면 OnExecute에서 EndAction호출하지 말고 OnUpdate를 구현 한 후 조건이 만족하면 EndAction을 호출 해야 합니다.

태스크는 OnInit -> OnExecute -> OnUpdate -> OnStop 의 순서로 호출됩니다.

OnInit : 태스크가 초기화되는 최초로 호출됩니다. 각종 변수 초기화 진행하면 됩니다.

OnExecute : Behavior Tree가 지속적으로 반복되며 태스크를 실행하는데 실행 될 때마다 호출 됩니다.

OnUpdate : OnExecute가 호출되고 OnStop이 호출되기 전까지 매 틱마다 호출 됩니다.

OnStop : EndAction이 호출되면 OnStop이 호출되면서 태스크가 종료 됩니다.

Action에 Move Towards 를 할당 한 모습입니다.

Target에 올바른 GameObject를 할당했다면 2의 속도로 0.1까지 근접할때까지 이동하게 됩니다.

Wait Action Finish가 위에서 말했던 OnExecute에서 처리할지 OnUpdate에서 처리할지 여부 입니다.

목적지 까지 가는동안 기다릴것이라면 Wait Action Finish를 체크하면 OnUpdate에서 수행하고 Stop Distance까지 접근한다면 EndAction을 호출하며 노드가 종료됩니다.

만일 체크하지 않는다면 단 1회만 속도 * Time.deltaTime만큼만 이동하고 다음 노드로 넘어가 버리게 됩니다.

 

Composites

대표적인것으로 Selector, Sequencer가 있습니다.

Selector : 자식이 true를 반환 할때까지 좌측부터 우측으로 실행 합니다. true 가 나온다면 종료합니다. - 단 1개의 성공만 허용

Sequencer : 좌측부터 우측까지 자식이 false가 나올때 까지 실행 합니다. - 1개라도 실패한다면 종료

그 박에도 많은 Composites를 제공하고 있습니다.

 

Condition

사진 하나로 설명이 가능 한데 if라고 볼 수 있습니다.

우측에 있는 Blackboard에 미리 정해둔 변수 값이 어떤 값이냐 따라서 true/false를 리턴하고 이에 따라서 다음노드가 실행되게 됩니다.

좌측 Assign Condition Task 에 보면 Invert Condition 이 있는데 이것은 !(not) 이라고 생각하시면 됩니다.

true 는 false로 false는 true로 전환 됩니다.

반응형

'Unity Engine' 카테고리의 다른 글

Behavior Tree - Custom Action  (0) 2022.07.07
Behavior Tree - Node Canvas (2)  (0) 2022.07.02
Unity - RaycastCommand, IJobParallelFor  (0) 2022.06.21
Custom Inspector - ReorderableList(2)  (0) 2022.06.20
Custom Inspector - ReorderableList(1)  (0) 2022.06.15