I think I found a bit more straightforward approach to building the spline, but I wanted to run this by everyone to see if I’m overlooking something.
After creating the FVector TArray of projectile path prediction points I called USplineComponent::SetSplinePoints() which takes three arguments: an TArray, a coordinate space enum, and a bool (bUpdateSpline). Passing in the TArray we just made and the enum, ESplineCoordinateSpace::World yielded positive results. The bool is set to true by default so I left it unchanged. Code pasted below.
I think this function handles clearing the spline points, converting locations to world coordinates, setting each through a for loop, and then updating afterwards all in one shot.
There’s another function called SetSplineWorldPoints that only takes a TArray (presumably doesn’t require you to specify world coordinate space); however, it does not have the bool argument bUpdateSpline so I am unclear whether or not this function automatically updates the spline once it is build or if that is even necessary.
TArray<FVector> PointLocations;
for (FPredictProjectilePathPointData PointData : PredictResults.PathData)
{
PointLocations.Add(PointData.Location);
}
TeleportSplineComp->SetSplinePoints(PointLocations, ESplineCoordinateSpace::World);