博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模仿黑魂锁定目标功能
阅读量:7012 次
发布时间:2019-06-28

本文共 1614 字,大约阅读时间需要 5 分钟。

if (bLocked)    {        //取消锁定状态        bLockedTarget = false;        bUseControllerRotationYaw = false;        GetCharacterMovement()->bOrientRotationToMovement = true;    }    else    {        //锁定目标        bLockedTarget = true;        bUseControllerRotationYaw = true;        GetCharacterMovement()->bOrientRotationToMovement = false;        //计算最近的目标        TArray
TempActorArray; CharacterVisualField->GetOverlappingActors(TempActorArray); CharacterNearbyMonster.Reset(); for (int i = 0; i < TempActorArray.Num();++i) { AMonster *TempActor=Cast
(TempActorArray[i]); if (TempActor&&!TempActor->IsPendingKill()) { CharacterNearbyMonster.Add(TempActor); } } if (CharacterNearbyMonster.Num()>0) { LockedTargetObject = CharacterNearbyMonster[0]; for (int i = 1; i
GetActorLocation() - GetActorLocation(); temp.Normalize(); FVector CurrenLockedTargetVector = LockedTargetObject->GetActorLocation() - GetActorLocation(); CurrenLockedTargetVector.Normalize(); if (FVector::DotProduct(CurrenLockedTargetVector, FollowCamera->GetForwardVector()) < FVector::DotProduct(temp, FollowCamera->GetForwardVector())) { LockedTargetObject = CharacterNearbyMonster[i]; } } } }

直接上代码,还有很多地方可以优化,仅供抛砖引玉,效果如图

 

转载于:https://www.cnblogs.com/blueroses/p/5625032.html

你可能感兴趣的文章