Misc Enemy Updates
This commit is contained in:
parent
251f840a43
commit
412e3f1fc4
|
@ -12,4 +12,5 @@ enum class EPatrolMovementEnum : uint8
|
||||||
{
|
{
|
||||||
SLOWWALK UMETA(DisplayName = "Slow Walk"),
|
SLOWWALK UMETA(DisplayName = "Slow Walk"),
|
||||||
WALK UMETA(DisplayName = "Walk"),
|
WALK UMETA(DisplayName = "Walk"),
|
||||||
|
SPRINT UMETA(DisplayName = "Sprint"),
|
||||||
};
|
};
|
||||||
|
|
|
@ -64,6 +64,9 @@ void AEnemyAIController::OnPossess(APawn* InPawn)
|
||||||
|
|
||||||
Blackboard->SetValueAsEnum("State", static_cast<uint8>(EAIState::PASSIVE));
|
Blackboard->SetValueAsEnum("State", static_cast<uint8>(EAIState::PASSIVE));
|
||||||
|
|
||||||
|
Blackboard->SetValueAsFloat("AttackRadius", enemy->AttackRadius);
|
||||||
|
Blackboard->SetValueAsFloat("DefendRadius", enemy->DefendRadius);
|
||||||
|
|
||||||
//ensure(enemy->GetMovementComponent()->UseAccelerationForPathFollowing());
|
//ensure(enemy->GetMovementComponent()->UseAccelerationForPathFollowing());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,9 +152,24 @@ void AEnemyAIController::OnPerceptionUpdated(const TArray<AActor*>& actors)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
FAISenseID SightID = SightConfig->GetSenseID();
|
FAISenseID SightID;
|
||||||
FAISenseID HearingID = HearingConfig->GetSenseID();
|
FAISenseID HearingID;
|
||||||
FAISenseID DamageID = DamageConfig->GetSenseID();
|
FAISenseID DamageID;
|
||||||
|
|
||||||
|
if (SightConfig)
|
||||||
|
{
|
||||||
|
SightID = SightConfig->GetSenseID();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HearingConfig)
|
||||||
|
{
|
||||||
|
HearingID = HearingConfig->GetSenseID();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DamageConfig)
|
||||||
|
{
|
||||||
|
DamageID = DamageConfig->GetSenseID();
|
||||||
|
}
|
||||||
|
|
||||||
if (stimulus.Type == SightID)
|
if (stimulus.Type == SightID)
|
||||||
{
|
{
|
||||||
|
@ -229,6 +247,11 @@ void AEnemyAIController::SetStateAsAttacking(AActor* target)
|
||||||
SetState(EAIState::ATTACKING);
|
SetState(EAIState::ATTACKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AActor* AEnemyAIController::GetTargetActor()
|
||||||
|
{
|
||||||
|
return Cast<AActor>(Blackboard->GetValueAsObject("TargetActor"));
|
||||||
|
}
|
||||||
|
|
||||||
void AEnemyAIController::SensedSight(AActor* actor, FAIStimulus& stimulus)
|
void AEnemyAIController::SensedSight(AActor* actor, FAIStimulus& stimulus)
|
||||||
{
|
{
|
||||||
EAIState CurrentState = static_cast<EAIState>(Blackboard->GetValueAsEnum("State"));
|
EAIState CurrentState = static_cast<EAIState>(Blackboard->GetValueAsEnum("State"));
|
||||||
|
|
|
@ -76,6 +76,9 @@ public:
|
||||||
UFUNCTION()
|
UFUNCTION()
|
||||||
void SetStateAsAttacking(AActor* target);
|
void SetStateAsAttacking(AActor* target);
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
AActor* GetTargetActor();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void SensedSight(AActor* actor, FAIStimulus& stimulus);
|
void SensedSight(AActor* actor, FAIStimulus& stimulus);
|
||||||
|
|
|
@ -22,6 +22,12 @@ public:
|
||||||
UPROPERTY(EditAnywhere, Meta = (AllowPrivateAccess = "true"))
|
UPROPERTY(EditAnywhere, Meta = (AllowPrivateAccess = "true"))
|
||||||
APatrolRoute* CurrentPatrolRoute;
|
APatrolRoute* CurrentPatrolRoute;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere)
|
||||||
|
float AttackRadius = 300.0;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere)
|
||||||
|
float DefendRadius = 500.0f;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
|
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
|
||||||
UBehaviorTree* BehaviourTree;
|
UBehaviorTree* BehaviourTree;
|
||||||
|
|
Loading…
Reference in New Issue