【UE5 目标锁定】锁定维护机制(2)
【UE5 目标锁定】复杂视锥检测(2)DEEMO
前言
继之前的工作,实现了较为合理的目标锁定。然而,当距离过远或再次遮挡锁定目标的时候,锁定无法自动解除。显然不太合理,以下内容提出了如何解决这个问题的方案。
思路说明
在Tick中进行锁定有效性验证,主要验证锁定目标到玩家角色的距离以及验证它们之间是否有遮挡物存在。当验证锁定无效的时候开始计时,当无效时长大于允许的缓冲时长时,解除锁定。
锁定维护机制
验证锁定是否有效
bool ABaseAbilityPlayerController::IsLockedValid()
{
UWorld* World = GetWorld();
if (!World || !LockedActor) return false;
// 距离检测
const FVector& LockedActorLocation = LockedActor->GetActorLocation();