This commit is contained in:
aozhiwei 2023-08-16 16:12:48 +08:00
parent 08994498ff
commit 60fb279830

View File

@ -384,12 +384,15 @@ behaviac::EBTStatus BaseAgent::CoMoveToCurrentTarget(float distance)
);
context->target = current_target_;
glm::vec3 dir = GetOwner()->GetPos().CalcDir(context->target.Get()->GetPos());
GlmHelper::Normalize(dir);
GetOwner()->SetMoveDir(dir);
GetOwner()->SetAttackDir(dir);
GetOwner()->GetMovement()->CalcTargetPos(60);
if (target_distance < 2) {
GetOwner()->GetMovement()->CalcTargetPos(60);
} else {
glm::vec3 dir = GetOwner()->GetPos().CalcDir(context->target.Get()->GetPos());
GlmHelper::Normalize(dir);
GetOwner()->SetMoveDir(dir);
GetOwner()->SetAttackDir(dir);
GetOwner()->GetMovement()->CalcTargetPos(60);
}
#ifdef DEBUG
a8::XPrintf("CoMoveToCurrentTarget %d\n", {current_target_.Get()->GetUniId()});
#endif
@ -401,6 +404,16 @@ behaviac::EBTStatus BaseAgent::CoMoveToCurrentTarget(float distance)
return behaviac::BT_FAILURE;
}
if (GetOwner()->GetMovement()->GetPathSize() <= 0) {
if (context->target.Get()) {
if (GlmHelper::IsEqual2D(GetOwner()->GetPos().ToGlmVec3(),
current_target_.Get()->GetPos().ToGlmVec3())) {
} else {
glm::vec3 dir = GetOwner()->GetPos().CalcDir(context->target.Get()->GetPos());
GlmHelper::Normalize(dir);
GetOwner()->SetMoveDir(dir);
GetOwner()->SetAttackDir(dir);
}
}
return behaviac::BT_SUCCESS;
}
return behaviac::BT_RUNNING;