国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【UE5C++】實(shí)現(xiàn)球形碰撞檢測(cè)的兩種個(gè)函數(shù):SweepMultiByObjectType和SphereTraceMult

2023-03-27 16:56 作者:一只箱君  | 我要投稿

UKismetSystemLibrary::SphereTraceMultiForObjects函數(shù)

(官方藍(lán)圖里面使用的就是這個(gè)函數(shù),推薦使用)

float SeekRadius = 100.0f;

TArray<FHitResult> HitResults2;

FVector BeginLocation = FollowCamera->GetComponentLocation();////起點(diǎn)位置

FVector EndLocation = BeginLocation + FollowCamera->GetForwardVector() * 1000;//終點(diǎn)位置


TArray<TEnumAsByte<EObjectTypeQuery>> ObjectTypes;

ObjectTypes.Add(EObjectTypeQuery::ObjectTypeQuery2);//Pawn

TArray<AActor* > IgnoreActors;

//參數(shù)列表場(chǎng)景可查看同名藍(lán)圖節(jié)點(diǎn)

bool bIsHit = UKismetSystemLibrary::SphereTraceMultiForObjects(GetWorld(), BeginLocation, EndLocation, SeekRadius, ObjectTypes, true, IgnoreActors, EDrawDebugTrace::ForDuration, HitResults2, true);

if (bIsHit)

{

for (FHitResult HitResult : HitResults2)

{

if (HitResult.GetActor() != NULL)

{

//對(duì)Actor們做的事情

}

}

}


SweepMultiByObjectType函數(shù)

TArray<FHitResult> HitResults;//檢測(cè)結(jié)果合集


FVector LineStart = FollowCamera->GetComponentLocation();;//起點(diǎn)位置

FVector LineEnd = LineStart + FollowCamera->GetForwardVector() * 3000;//終點(diǎn)位置


FCollisionObjectQueryParams ObjectQueryParams;//碰撞對(duì)象查詢參數(shù)

ObjectQueryParams.AddObjectTypesToQuery(ECC_Pawn); //添加檢測(cè)對(duì)象


FCollisionShape Shape;//碰撞檢測(cè)的形狀,可以是盒子,圓柱體或者球體

Shape.MakeSphere(150.0f);

Shape.SetSphere(150.0f);//設(shè)置大小


FCollisionQueryParams Params;//碰撞對(duì)象查詢參數(shù)

Params.AddIgnoredActor(this);//忽略自身

DrawDebugLine(GetWorld(), LineStart, LineEnd, FColor::Red, false, 2.0f, 0.0f, 2.0f);


//這個(gè)函數(shù)當(dāng)遇到第一個(gè)碰撞的物體的時(shí)候就會(huì)停下,然后收集所有的重疊部分

//第四個(gè)參數(shù)是球體的旋轉(zhuǎn),但是查詢中的旋轉(zhuǎn)沒有意義所以設(shè)置為空旋轉(zhuǎn)

if (GetWorld()->SweepMultiByObjectType(HitResults, LineStart, LineEnd, FQuat::Identity, ObjectQueryParams, Shape, Params))

{

for (FHitResult Hit : HitResults)//創(chuàng)建單個(gè)碰撞結(jié)果集,對(duì)多對(duì)象碰撞結(jié)果集合進(jìn)行遍歷

{

AActor* HitActor = Hit.GetActor();


if (HitActor)

{

//對(duì)Actor們做的事情

UKismetSystemLibrary::PrintString(this, TEXT("Hit Succeed,HitActorName is :") + HitActor->GetName());

}

}

}



【UE5C++】實(shí)現(xiàn)球形碰撞檢測(cè)的兩種個(gè)函數(shù):SweepMultiByObjectType和SphereTraceMult的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
高雄市| 山丹县| 涿州市| 北川| 抚州市| 昌宁县| 营口市| 岳西县| 永兴县| 南开区| 鄂伦春自治旗| 滨海县| 即墨市| 嘉鱼县| 泸溪县| 罗田县| 弋阳县| 华安县| 黑龙江省| 沁水县| 哈巴河县| 达日县| 万山特区| 隆林| 扎囊县| 泗阳县| 灵石县| 工布江达县| 永新县| 和林格尔县| 家居| 宣汉县| 平泉县| 陇川县| 民乐县| 神农架林区| 嘉兴市| 陆良县| 晋中市| 疏附县| 曲阜市|