I had some trouble using physics and hit events when having a weapon swing, so i’m testing using overlap at the moment, and hit result always returns a 0,0,0 hit position, on both the actor being hit, and the event from my sword.
I’m trying to spawn a simple effect at the impact point but it is proving to be more difficult than it should be. When I test “hit actor” from the hit result it returns None. So it seems like the sweep result is empty even though the event is firing.
When I was reading around about this after posting here, I found that it seems that overlap was never actually designed to output that information, so its less of a bug as is it is a lack of the features. So most of break hit will do nothing for overlap, since there was no ‘Hit.’
My solution was to make a custom collision preset that overlapped on all objects except from pawns (That was all I needed luckily.) The other solution thrown around was to do a raycast as your object gets near to something, and then take information from that Raycast Hit.
Indeed GreyDesigns the issue is that the hit result is not populated. As a hotfix/work around, you can use this overlap event to do your own sweep or line test, which WILL have its hit result populated.
But, in my opinion, this is a Bug
The overlap result should not offer a hit result as an output pin if the overlap never populates that hit result
3 years later to the date and I just ran into this same issue and 100% agree. If this isn’t intended to be supported then it shouldn’t be exposed. It looks like only “Hit Actor” and “Hit Component” are populated - though it seems to always be the actor and component that are sending the event which are already available via explicit outputs from the delegate. Which is to say - HitResult contains no novel information at all… it is effectively just the ctor default values.
Misleading at best and never useful. Remove it or (better yet) make it work!
I am confronted with this now as well. I am left wondering how to proceed and this pin being exposed caused me great confusion until I finally happened upon the few threads like this about it that are available. Either the pin should populate some of Hit Result (preferable) or it should not be visible (less preferable but better than the current state), no?
I don’t think you’ll be able to use On Component Overlap at all here. For me, I was attempting to create dense cuttable individual pieces of tall grass. I was unable to use On Hit nodes, which are the ones that get their Hit Result fully populated, so my workaround was to use the On Component Overlap to trigger a custom event/function that began checking for collisions. In your case, you may want to try using On Component Overlap to fire a custom function which then gets all overlapping actors or components, allowing you to get the reference that way.
It’s not sweep. Try using Impact Point or break the Hit Component. I know it works. I use it att.
Also, check the position of your actors. There may be an offset required. If the target is composed of multiple components, you may need to start at the root location.
Is this still an issue? I am having the exact same problem.
To those who say overlaps should not actually generate result data like impact normals etc, keep in mind this is onBeginOverlap, meaning there is 1 frame where normals make a lot of sense. And sure, if you spawn into an overlap area then you’d have to estimate it somewhow… but I’d rather have it for when it makes sense.
Can someone please confirm there is no way to get hit results populated?
So I changed my overlap mesh (pawn) to be the root, now the hit results populate. They do not populate if the mesh is a child of the scene component. This seems annoying if you have an actor with multiple meshes. Am I missing something or is this just how it is?
I just ran into this problem. I made a projectile and set the mesh as the root component with a spherecomponent attached to it. The mesh had no collision at all because I wanted to use this sphere to get overlap information but it only returned 0(in fact it doesn’t return anything so I just get 0). Then I just set the sphere as the root component and attached the mesh to it and it works. Maybe ProjectileMovementComponent can only accept the collision of the root component.