60 const FVector &Start = GetActorLocation();
61 const FVector &End = Start + (GetActorForwardVector() *
Distance);
62 UWorld* CurrentWorld = GetWorld();
65 FHitResult HitOut = FHitResult();
68 FCollisionQueryParams TraceParams(FName(TEXT(
"ObstacleDetection Trace")),
true,
this);
70#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
74 const FName TraceTag(
"ObstacleDebugTrace");
75 CurrentWorld->DebugDrawTraceTag = TraceTag;
76 TraceParams.TraceTag = TraceTag;
81 TraceParams.bTraceComplex =
true;
84 TraceParams.bIgnoreTouches =
true;
87 TraceParams.bReturnPhysicalMaterial =
false;
90 TraceParams.AddIgnoredActor(
this);
91 if(Super::GetOwner()!=
nullptr)
92 TraceParams.AddIgnoredActor(Super::GetOwner());
100 FCollisionObjectQueryParams TraceChannel = FCollisionObjectQueryParams(
101 FCollisionObjectQueryParams::AllDynamicObjects);
102 isHitReturned = CurrentWorld->SweepSingleByObjectType(
114 ECollisionChannel TraceChannel = ECC_WorldStatic;
115 isHitReturned = CurrentWorld->SweepSingleByChannel(
135 const FHitResult &Hit)
144 #if defined(WITH_ROS2)
146 if (ROS2->IsEnabled())
148 TRACE_CPUPROFILER_EVENT_SCOPE_STR(
"ROS2 Send");
150 AActor* ParentActor = GetAttachParentActor();
153 FTransform LocalTransformRelativeToParent = GetActorTransform().GetRelativeTransform(ParentActor->GetActorTransform());
154 ROS2->ProcessDataFromObstacleDetection(DataStream.GetSensorType(), StreamId, LocalTransformRelativeToParent,
Actor, OtherActor, HitDistance/100.0f,
this);
158 ROS2->ProcessDataFromObstacleDetection(DataStream.GetSensorType(), StreamId, DataStream.GetSensorTransform(),
Actor, OtherActor, HitDistance/100.0f,
this);
163 DataStream.SerializeAndSend(*
this,
165 Episode.SerializeActor(OtherActor),