FCollisionShape Sphere = FCollisionShape::MakeSpere(10);
FHitResult HitResult;
bool HasHit = GetWorld()->SweepSingleByChannnel(HitResult,
StartVector,//FVector
EndVectpr,//FVector
FQuat::Identity,//回転ゼロ
MY_SETTING_TRACE_CHANNEL,//トレースチャンネル
Sphere);//スイープ検知する形状
これはあらかじめ設定した形状でRaycastを行うコード
結果は参照でHitResultに渡され、検知したかどうかの判定が返り値としてHasHitに格納される。
難しいのがどのトレースチャンネルでRaycastを行うかで
/ProjectFile/Config/DefaultEngine.ini
内でトレースチャンネル名で検索したときのChannelをコピペする必要がある。
//今回はGrabberというチャンネルを作成したのでこのような行が追加された
//なので使用するのはECC_GameTraceChannel2
//ECollisionChannel::ECC_Visibility
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="Grabber")
UWorld::SweepSingleByChannel | Unreal Engine 5.4 Documentation | Epic Developer Community