진행한 것들

보스 Behaviour Tree와 SelectorNode

이전에 이어서...

https://jcdevelop98.tistory.com/378

 

DevLog - 이그라엘(IGRAL) Behaviour Tree와 Sequence Node

진행한 것들 보스 Behaviour Tree와 Sequence Node Behaviour Tree - 상태에는 Running, Success, Failure가 있음 - Root가 되는 Node를 가지고 있으며 Update 문에서 Evaluate 함수를 호출하여 노드의 조건에 따라 동작을 수

jcdevelop98.tistory.com

 

Selector Node : 조건에 따라 어떤 노드를 실행할 지 정하는 Node이다.

- 자식 노드들을 왼쪽에서 오른쪽 순으로 진행

- 자식 노드 중에 Success 또는 Running 노드가 있다면 해당 노드 실행 후 종료

 

구상 중인 것

- Selector Node에서 Sequence Node의 자식 Node인 CheckHPNode를 체크하여 Failure면 DieNode 수행, 아니라면 Sequence 자식 Node들 수행

(아래 코드가 논리적으로 잘못되어 다음 포스트 내용으로 수정)

https://jcdevelop98.tistory.com/380

 

DevLog - 이그라엘(IGRAL) Behaviour Tree와 애니메이션 연결

진행한 것들 보스 Behaviour Tree와 애니메이션 연결 보스의 패트롤과 공격 부분을 애니메이션과 연결했습니다. 오늘의 이슈 / 내일 할 것 오늘 이슈 - 어제 한 BehaviourTree의 SetTree부분이 논리적으로

jcdevelop98.tistory.com

protected override Node SetTree()
{
    Node root = new Selector(new List<Node>
    {
        new Sequence(new List<Node>
        {
            new CheckHpNode(this, phaseSO.PhaseInfo.Length),
            new UpdatePhaseNode(this),
            new PatrolNode(_rigid, waypoints, StatHandler.Data.SpeedMax),
            new Sequence(new List<Node>
            {
                new CheckSkillCoolTimeNode(this),
                new UseSkillNode(this)
            }),
            new ShootNode(bulletPrefab.GetComponent<Bullet>(), GameManager.Instance.PlayerTransform, transform ,5)
        }),
        new DieNode()
    });

    return root;
}

 

오늘의 이슈 / 내일 할 것

오늘 이슈

문제점

- 변이 시 마젠타 색 남아있음

- 무기가 겹쳐져서 안 없어짐

원인

- 코루틴을 중간에 멈추는 부분이 있는데 여러 입력이 들어왔을 시 중간에 변이가 실행 중인 코루틴이 멈춰서 두 가지 문제가 나왔던 것임

해결

- StopCoroutine 부분을 제거

 

내일 할 것

Running 시 Behaviour Tree 탈출 못 하는 것 해결하기

 

오늘의 회고

 오늘은 어제의 Sequence Node에 이이서 Selector Node에 대해 배웠다. Selector Node를 어떻게 쓰느냐에 따라 분기를 나눌 수 있는데 엄청 중요한 Node인 것 같다. Patrol 상태일 때 Running State가 되면 Hp를 체크 못 하는 문제가 있는데 이를 내일 해결해보도록 해야겠다. 내일도 파이팅!

+ Recent posts