目錄
- 碰撞檢測
- 參數詳情
- 示例用法
碰撞檢測
顯示名稱 | 中文名稱 | C++ |
---|---|---|
Sphere Trace By Channel | 按通道進行球體追蹤 | UKismetSystemLibrary::SphereTraceSingle |
Sphere Trace By Profile | 按描述文件進行球體追蹤 | UKismetSystemLibrary::SphereTraceSingleByProfile |
Sphere Trace For Objects | 針對Object進行球體追蹤 | UKismetSystemLibrary::SphereTraceSingleForObjects |
Multi Sphere Trace By Channel | 按通道進行多球體追蹤 | UKismetSystemLibrary::SphereTraceMulti |
Multi Sphere Trace By Profile | 按描述文件進行多球體追蹤 | UKismetSystemLibrary::SphereTraceMultiByProfile |
Multi Sphere Trace For Objects | 針對object進行多球體追蹤 | UKismetSystemLibrary::SphereTraceMultiForObjects |
Box Trace By Channel | 按通道進行盒體追蹤 | UKismetSystemLibrary::BoxTraceSingle |
Box Trace By Profile | 按描述文件進行盒體追蹤 | UKismetSystemLibrary::BoxTraceSingleByProfile |
Box Trace For Objects | 針對Object進行盒體追蹤 | UKismetSystemLibrary::BoxTraceSingleForObjects |
Multi Box Trace By Channel | 按通道進行多盒體追蹤 | UKismetSystemLibrary::BoxTraceMulti |
Multi Box Trace By Profile | 按描述文件進行多盒體追蹤 | UKismetSystemLibrary::BoxTraceMultiByProfile |
Multi Box Trace For Objects | 針對object進行多盒體追蹤 | UKismetSystemLibrary::BoxTraceMultiForObjects |
Line Trace By Channel | 按通道進行線條追蹤 | UKismetSystemLibrary::LineTraceSingle |
Line Trace By Profile | 按描述文件進行線條追蹤 | UKismetSystemLibrary::LineTraceSingleByProfile |
Line Trace For Objects | 針對object進行線條追蹤 | UKismetSystemLibrary::LineTraceSingleForObjects |
Multi Line Trace By Channel | 按通道進行多線條追蹤 | UKismetSystemLibrary::LineTraceMulti |
Multi Line Trace By Profile | 按描述文件進行多線條追蹤 | UKismetSystemLibrary::LineTraceMultiByProfile |
Multi Line Trace For Objects | 針對object進行多線條追蹤 | UKismetSystemLibrary::LineTraceMultiForObjects |
Capsule Trace By Channel | 按通道進行膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceSingle |
Capsule Trace By Profile | 按描述文件進行膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceSingleByProfile |
Capsule Trace For Objects | 針對object進行膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceSingleForObjects |
Multi Capsule Trace By Channel | 按通道進行多膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceMulti |
Multi Capsule Trace By Profile | 按描述文件進行多膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceMultiByProfile |
Multi Capsule Trace For Objects | 針對object進行多膠囊體追蹤 | UKismetSystemLibrary::CapsuleTraceMultiForObjects |
參數詳情
輸入引腳
- Start:射線起點的位置。
- End:射線終點的位置。
- Radius:球體的半徑。
- Trace Channel:碰撞通道,用于指定哪些類型的物體可以被檢測到。常見的通道包括 Visibility、Camera、WorldStatic 等。
- bTrace Complex:是否啟用復雜碰撞幾何體的檢測。如果設置為 True,則會檢測復雜的靜態網格體;如果設置為 False,則只檢測簡單的碰撞盒。
- bFind Initial Overlap:是否檢測初始重疊。如果設置為 True,則會在起點處檢測是否有重疊的物體。
- bIgnore Self:是否忽略自身物體的碰撞。如果設置為 True,則不會檢測到執行該節點的物體本身。
- Actor to Ignore:需要忽略的特定 Actor。你可以在這里指定一個或多個 Actor,使其不參與碰撞檢測。
- bShow Trace:是否在編輯器中顯示射線追蹤的可視化效果。這在調試時非常有用。
- bPersistent Show Trace:是否持續顯示射線追蹤的可視化效果。如果設置為 True,即使游戲停止,也會繼續顯示。
輸出引腳
- Out Hit:如果檢測到碰撞,這里會返回一個 Hit Result 結構體,包含碰撞的詳細信息,如碰撞位置、碰撞物體等。
- Return Value:布爾值,表示是否檢測到碰撞。如果檢測到碰撞,返回 True;否則返回 False。
示例用法
const FVector ActorLocation = GetActorLocation();TArray<TEnumAsByte<EObjectTypeQuery>> ObjectTypes;ObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery1); // WorldStaticObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery2); // WorldDynamicObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery3); // PawnObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery4); // PhysicsBodyObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery5); // VehicleObjectTypes.Emplace(EObjectTypeQuery::ObjectTypeQuery6); // DestructibleTArray<FHitResult> HitResults;TArray<AActor*> ActorsToIgnore;ActorsToIgnore.Add(this); // 忽略自身if (UKismetSystemLibrary::SphereTraceMultiForObjects(GetWorld(), ActorLocation, ActorLocation, Area, ObjectTypes,false, ActorsToIgnore, EDrawDebugTrace::ForDuration, HitResults, true)){for (FHitResult HitResult : HitResults) {if (HitResult.GetActor() != nullptr) {ApplyEffectToTarget(HitResult.GetActor());}}}