zoukankan      html  css  js  c++  java
  • 模仿黑魂锁定目标功能

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

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

  • 相关阅读:
    scala中的注解
    scala中的表达式
    scala中枚举
    spark sql建表的异常
    hive和sequoiadb对接的问题
    java IO的总结
    Spark的序列化
    pentaho和spark-sql对接
    英语口语练习系列-C28-海滨-辨别身份-悬崖边的树
    2018-12-4-今日总结
  • 原文地址:https://www.cnblogs.com/blueroses/p/5625032.html
Copyright © 2011-2022 走看看