본문 바로가기

전체 글

(195)
[Behavior Designer] 08 . 디버깅 [디버깅] [디버깅] =>BT가 실행중일때 Task는 회색 (실행 안됨) / 녹색 (실행중) 사이에서 색상이 변경되는 것을 볼 수 있다. Task가 실행후 Success를 반환한다면 체크를 , Failure를 반환한다면 x가 표시된다. =>작업의 실행 도중 인스펙터 내에서 변경이 가능하고 실시간으로 게임에 반영된다. [중단점] =>Task 우클릭 - Set Breakpoint는 해당 Task 에 중단점을 실행한다 . 해당 Task에 들어섰을때 유니티를 일시 정지한다. 특정 작업이 언제 실행되는지 알 수 있다. [감시변수] =>Inspector에서 변수 옆 돋보기를 누른다면 , 그래프 내에서 변수의 변화를 캐치 할 수 있다. [작업 비활성화] =>특정 Task에만 집중하고자 할 때 Task 상단 노란 버튼..
[Behavior Designer] 07 . 시야각에 있다면 쫓아가는 BT 조건 (Conditional)을 충족한다면 행동(Action)을 하는 BT를 만들어 본다 . 해당 BT는 Conditional Task / Action Task 두가지 파트로 나뉜다.유튜브에 튜토리얼이 친절하게 올라와 있으니 참고. [CONDITIONAL TASK] [CONDITIONAL TASK] Conditional Task는 상태를 확인만 한다 . WIthInSight는 시야각 내부에 대상이 있는지에 대한 상태를 확인 할 것이다. using UnityEngine; using BehaviorDesigner.Runtime; using BehaviorDesigner.Runtime.Tasks; public class WithinSight : Conditional { // How wide of an angl..
[Behavior Designer] 06 . PARENT TASKS [PARENT TASKS] [PARENT TASKS] =>Parent Task는 Composite / Decorater Task를 말한다. // 상위 작업이 가질 수 있는 최대 자식 수입니다. 일반적으로 1 또는 int입니다. public virtual int MaxChildren(); // 현재 작업이 병렬 작업인지 확인하는 부울 값입니다 public virtual bool CanRunParallelChildren(); //현재 활성 자식의 인덱스입니다. public virtual int CurrentChildIndex(); // 현재 작업을 실행할 수 있는지 여부를 결정하는 bool 값입니다. public virtual bool CanExecute(); // 실행된 상태에 데코레이터를 적용합니다 pu..
[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(); /..
[Behavior Designer] 04 . Behavior Manager [Behavior Manager] [Behavior Manager] BT가 동작할때 , Behavior Manager가 있지 않다면 새로 생성한다. 해당 매니저는 씬에 있는 모든 BT의 실행을 관리 할 것이다 . [컴포넌트 옵션] Update Interval =>얼마나 자주 BT가 Tick 할 지는 Update Interval 옵션을 조정함으로 정할 수 있다. “Every Frame” 은 업데이트 루프에서 매 프레임 BT가 Tick 할 것이다. “Specify Seconds”는 특정 시간에 Tick 하게 할 것이다. “Manual” 은 언제 BT가 Tick 할지에 대한 컨트롤을 사용자에게 부여한다. 해당 메서드의 호출로 Tick이 가능하다. BehaviorManager.instance.Tick(); 또한..
[Behavior Designer] 03 . Behavior Tree Component [Behavior Tree Component] [Behavior Tree Component] 해당 컴포넌트는 Behavior를 저장하고 , Behavior Designer와 Task 간의 인터페이스 역할을 수행한다. 해당 API로 BT를 시작하고 멈출 수 있다. public void EnableBehavior(); // pause: temporarily stop the behavior tree at its current execution point. //It can be resumed with EnableBehavior. public void DisableBehavior(bool pause = false); 해당 메서드는 Task를 찾을 수 있다. TaskType FindTask(); List FindT..
[자료구조] 리스트 - 02 . 더블 링크드 리스트 <구현> 앞서 봤던 DLL을 구현하여 코드상에서 확인해보겠다. 01 . 헤더 파일 //DLL.h #ifndef DLL_H #define DLL_H #include #include typedef int ElementType; typedef struct TagNode { ElementType Data; TagNode* PrevNode; TagNode* NextNode; }Node; #include"DLL.h" //생성 Node* DLL_CreateNode(ElementType Data); //소멸 void DLL_DestroyNode(Node* Node); //추가 void DLL_AppendNode(Node** Head, Node* NewNode); //삽입 void DLL_InsertNode(Node* Curre..
[Behavior Desinger] 02 . Overview [Behavior Desinger] [Behavior Desinger] Behavior Desinger 는 행동 트리 구현 프로그램이다 .해당 에셋에 대한 도큐먼트를 참고 할 수 있다. 이 에셋을 활용하여 무엇을 할것이다 (?) [UI] =>1번 섹션 : 그래프 에리어이는 BT를 만드는 공간이다. 새 task를 생성하고 BT 안에 해당 task를 정렬 가능하다 =>2번 섹션 : 프로퍼티 판넬은 BT의 특정 프로퍼티를 조작하는 공간이다. task , 변수 , 파라미터등을 편집 가능하다 =>3번 섹션 : BT 작업 툴바이다 . BT를 선택하거나 , 추가/삭제가 가능하다 . =>4번 섹션 : 디버그 툴바이다 . [BT 생성] =>시작하기에 앞서 Behavior Tree 컴포넌트를 추가해야 한다. 이는 BT의 ..