0. 개요

몬스터가 죽은 이후 혹은 타겟이 죽은 이후에 AI를 비활성화하도록 비헤이비어 트리를 수정한다.

 

 

1. 몬스터 사망시 AI 비활성화

(1) 블랙보드에 Dead 키 추가

 

 

(2) 데코레이터 추가

 

블랙보드 키 Dead의 값을 가져와 Dead의 값이 설정되어 있지 않은 상태(Is Not Set)에서 값의 변화가 발생하면(On Value Change) 본인을 포함한 하위 노드를 전부 중단하도록 설정한다(관찰자 중단 : Both).

 

 

(3) AuraEnemy 클래스의 죽음 함수 수정

void AAuraEnemy::Die()
{
    // 수명 설정
    SetLifeSpan(LifeSpan);

    if (AuraAIController)
    {
        // 블랙보드 키 기본값 설정
        AuraAIController->GetBlackboardComponent()->SetValueAsBool(FName("Dead"), true);
    }

    // 랙돌 효과와 무기 드랍
    Super::Die();
}

이제 몬스터가 사망하면 AI가 실행되지 않는다.

 

 

2. 플레이어 캐릭터 사망시 AI 비활성화

- BTS_FindNearestPlayer 비헤이비어 트리 서비스 수정

타겟 액터에 대해 Is Dead 함수를 호출하여 bDead를 체크하고 false일 경우에만 로직을 실행한다.