
正文
【UE4 C++】 射线检测 LineTrace 及 BoxTrace、SphereTrace、CapsuleTrace API
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
World.h 库里的 Trace API- Trace模式
- TraceSingle 单个结果
- TraceMulti 多个结果
- Trace 的检测依据
- ByChanne
- ByObjectType
- ByProfile
LineTraceSingleByChannel
- TraceSingle 单个结果
- TraceMulti 多个结果
- ByChanne
- ByObjectType
- ByProfile
由于一般不使用 World 里的Trace API,故本小结只举 LineTraceSingleByChannel 一个例子
Syntax
bool LineTraceSingleByChannel(
struct FHitResult& OutHit,
const FVector& Start,
const FVector& End,
ECollisionChannel TraceChannel,
const FCollisionQueryParams& Params = FCollisionQueryParams::DefaultQueryParam,
const FCollisionResponseParams& ResponseParam = FCollisionResponseParams::DefaultResponseParam
) const;代码实现
// 碰撞参数
FCollisionQueryParams CollisonQueryParams(TEXT("QueryParams"),true,NULL);
CollisonQueryParams.bTraceComplex = true;
CollisonQueryParams.bReturnPhysicalMaterial = false;
CollisonQueryParams.AddIgnoredActor(this);// 起始点和检测结果
FVector BeginLoc = GetActorLocation();
FVector EndLoc = BeginLoc + GetActorForwardVector() * 1000;
FHitResult HitResult;// 射线检测
GetWorld()->LineTraceSingleByChannel(HitResult, BeginLoc, EndLoc, ECollisionChannel::ECC_Visibility, CollisonQueryParams);
// 绘制射线
DrawDebugLine(GetWorld(), BeginLoc, HitResult.GetActor() ? HitResult.Location : EndLoc, FColor::Red, false, 1.0f);
if (HitResult.GetActor())
{
UKismetSystemLibrary::PrintString(GetWorld(), HitResult.GetActor()->GetName());
}
UKismetSystemLibrary 库里的 Trace API与蓝图使用的 Trace 节点对应,
实际调用的是 World.h 里的 Trace 函数

LineTraceLineTraceSingle
与蓝图使用的 Trace 节点对应,
实际调用的是 World.h 里的 Trace 函数

LineTraceSingle
根据 Channel 检测单个物体
Syntax
static bool LineTraceSingle(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult& OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);ETraceTypeQuery 说明
- 默认 TraceTypeQuery1 —— Visibility
- 默认 TraceTypeQuery2 —— Camera
- 可在 ProjectSettings->Engine->Collision->Trace Channels 添加自定义
代码实现
// 起始点和检测结果
FVector BeginLoc = GetActorLocation();
FVector EndLoc = BeginLoc + GetActorForwardVector() * 1000;
FHitResult HitResult;// 要忽略的物体
TArray<AActor*> IgnoreActors;// 射线检测
bool bIsHit = UKismetSystemLibrary::LineTraceSingle(GetWorld(), BeginLoc, EndLoc, TraceTypeQuery1, false, IgnoreActors, EDrawDebugTrace::ForDuration, HitResult, true);
if (bIsHit)
{
UKismetSystemLibrary::PrintString(GetWorld(), HitResult.GetActor()->GetName());
}
LineTraceSingleForObjects
根据 Object Type 检测单个物体
Syntax
static bool LineTraceSingleForObjects(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
const TArray<TEnumAsByte<EObjectTypeQuery> > & ObjectTypes,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult& OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);EObjectTypeQuery 对应 ObjectType
- 默认 ObjectTypeQuery1 —— WorldStatic
- 默认 ObjectTypeQuery2 —— WorldDynamic
- 默认 ObjectTypeQuery3 —— Oawn
- 默认 ObjectTypeQuery4 —— PhysicasBody
- 默认 ObjectTypeQuery5 —— Vehicle
- 默认 ObjectTypeQuery6 —— Destructible
- 可以再 ProjectSettings->Engine->Collision->Object Channels 添加自定义
代码实现
// 设置要检测的 Object Type
TArray<TEnumAsByte<EObjectTypeQuery> > ObjectTypes;
ObjectTypes.Add(EObjectTypeQuery::ObjectTypeQuery1);//开始检测
bool bIsHit = UKismetSystemLibrary::LineTraceSingleForObjects(GetWorld(), BeginLoc, EndLoc, ObjectTypes, false, IgnoreActors, EDrawDebugTrace::ForDuration, HitResult, true);
if (bIsHit)
{
UKismetSystemLibrary::PrintString(GetWorld(), HitResult.GetActor()->GetName());
}
LineTraceSingleByProfile
根据 Collision Preset 检测单个物体
Syntax
static bool LineTraceSingleByProfile(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
FName ProfileName,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult& OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);ProfileName 对应 Collision Preset 的名称
代码实现
bool bIsHit = UKismetSystemLibrary::LineTraceSingleByProfile(GetWorld(), BeginLoc, EndLoc,TEXT("BlockAll"), false, IgnoreActors, EDrawDebugTrace::ForDuration, HitResult, true);
if (bIsHit)
{
UKismetSystemLibrary::PrintString(GetWorld(), HitResult.GetActor()->GetName());
}
LineTraceMulti
根据 Channel 检测多个物体,输出 TArray&
Syntax
static bool LineTraceMulti(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray<FHitResult>& OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);
LineTraceMultiForObjects
根据 Object Type 检测多个物体,输出 TArray&
Syntax
static bool LineTraceMultiForObjects(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
const TArray<TEnumAsByte<EObjectTypeQuery> > & ObjectTypes,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray<FHitResult>& OutHits,
bool bIgnoreSelf, FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);
LineTraceMultiByProfile
根据 Collision Preset 检测多个物体,输出 TArray&
Syntax
static bool LineTraceMultiByProfile
(
const UObject* WorldContextObject,
const FVector Start,
const FVector End,
FName ProfileName,
bool bTraceComplex,
const TArray<AActor*>& ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray<FHitResult>& OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor = FLinearColor::Red,
FLinearColor TraceHitColor = FLinearColor::Green,
float DrawTime = 5.0f
);
BoxTraceBoxTraceSingle
static bool BoxTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMulti
static bool BoxTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
FVector HalfSize,
const FRotator Orientation,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceSingleForObjects
static bool BoxTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMultiForObjects
static bool BoxTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceSingleByProfile
static bool BoxTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMultiByProfile
static bool BoxTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
FVector HalfSize,
const FRotator Orientation,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceSphereTraceSingle
static bool SphereTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceMulti
static bool SphereTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceSingleForObjects
static bool SphereTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceMultiForObjects
static bool SphereTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceSingleByProfile
static bool SphereTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceMultiByProfile
static bool SphereTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceCapsuleTraceSingle
static bool CapsuleTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMulti
static bool CapsuleTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleForObjects
static bool CapsuleTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiForObjects
static bool CapsuleTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleByProfile
static bool CapsuleTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiByProfile
static bool CapsuleTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
参考- UKismetSystemLibrary
BoxTraceSingle
static bool BoxTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMulti
static bool BoxTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
FVector HalfSize,
const FRotator Orientation,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceSingleForObjects
static bool BoxTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMultiForObjects
static bool BoxTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceSingleByProfile
static bool BoxTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
const FVector HalfSize,
const FRotator Orientation,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
BoxTraceMultiByProfile
static bool BoxTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
FVector HalfSize,
const FRotator Orientation,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
SphereTraceSingle
static bool SphereTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)SphereTraceMulti
static bool SphereTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)SphereTraceSingleForObjects
static bool SphereTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)SphereTraceMultiForObjects
static bool SphereTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)SphereTraceSingleByProfile
static bool SphereTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)SphereTraceMultiByProfile
static bool SphereTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceCapsuleTraceSingle
static bool CapsuleTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMulti
static bool CapsuleTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleForObjects
static bool CapsuleTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiForObjects
static bool CapsuleTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleByProfile
static bool CapsuleTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiByProfile
static bool CapsuleTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
参考- UKismetSystemLibrary
CapsuleTraceSingle
static bool CapsuleTraceSingle
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMulti
static bool CapsuleTraceMulti
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
ETraceTypeQuery TraceChannel,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleForObjects
static bool CapsuleTraceSingleForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiForObjects
static bool CapsuleTraceMultiForObjects
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
const TArray < TEnumAsByte < EObjectTypeQuery > > & ObjectTypes,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceSingleByProfile
static bool CapsuleTraceSingleByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
FHitResult & OutHit,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
CapsuleTraceMultiByProfile
static bool CapsuleTraceMultiByProfile
(
const UObject * WorldContextObject,
const FVector Start,
const FVector End,
float Radius,
float HalfHeight,
FName ProfileName,
bool bTraceComplex,
const TArray < AActor * > & ActorsToIgnore,
EDrawDebugTrace::Type DrawDebugType,
TArray < FHitResult > & OutHits,
bool bIgnoreSelf,
FLinearColor TraceColor,
FLinearColor TraceHitColor,
float DrawTime
)
- UKismetSystemLibrary






