Download

Is component owner reference broken?

I have 2 actors with simple box for mesh and collision around it and they have reference for each other called “OtherBox”. When their collisions overlap I got event and I want to check is this the other box, but this is very weird. If I try to get reference with GetOwner and compare it with “OtherBox” they are not equal, but if I try to destroy the actor received by GetOwner I can. Why GetOwner reference work for destroying but no for compare?

Everything is working as expected. The “Overlapped Component” is from the actor itself and not from the other actor. So, when you “Get Owner” you’re basically just getting a self reference, and therefore, the comparasion will always be false, since they are different objects.

How I can get reference to the actor that own this component?

The owner is the object itself. What exactly do you want to do? How are you setting “Other Box”?

You might want to use “Other Comp” pin instead.

Each box has LineTraceByChannel that hit each other and set the actor reference in “OtherBox”. This is basic example of what I want to do, in my game the boxes are characters and they have many collisions around them.
I want to stop the overlap event for specific character, I have his reference, but when I overlap with his components I can’t stop it. That is why I want to get reference for him with his components.

Try using “Other Comp” pin instead of “Overlapped Component”. That will give you the component of the actor you collided with. Or even better, use “Other Actor” pin. That way, you won’t need “Get Owner”.

That was my first setup - with “other actor” and worked for simple actors, but no for characters and I start to thought the problem is that I overlap with components. Now I checked everything and I found that I forget to set the actor reference when I overlap with character and I compared the overlapped actor with empty variable. Thanks for the help and sorry for wasting your time with my mistake.