Are you trying to post process the adjusted spring arm location? If so, then override the UpdateDesiredArmLocationmethod
void MySpringArmComponent::UpdateDesiredArmLocation
(
bool bDoTrace,
bool bDoLocationLag,
bool bDoRotationLag,
float DeltaTime
)
{
Super::UpdateDesiredArmLocation(bDoTrace, bDoLocationLag, bDoRotationLag, DeltaTime);
// Spring arm should be adjusted now, you can further adjust it below
}
Alternatively, you can override the BlendLocation. When the spring arm detects a collision, it calls this method passing in the DesiredArmLocation (without collision) and the HitLocation and whether it is a blocking hit. By default, if a blocking hit is found, it returns HitLocation so that the UpdateDesiredArmLocation method can use it as a final target location.
Instead of selecting either the DesiredArmLocation or HitLocation based on a hit detection, you can implement custom logic to return something in between, or anything tweaked in fact.