Line Trace From Multiple Components (BP Interface)

Howdy!

I am working on getting controls for a feature working in my project.

I am using a BP Interface to find objects that can be interacted with and show a popup over it. This works with my doors, which only have one interactable component. This project has two points of interaction and I am having trouble nailing it down.

I have two buttons, one that moves the carriage forward, and another that moves the carriage backwards. I simply want the text indicating the button’s name to pop up for each.

The problem I am having is that it is only showing the “move carriage forward” result.

I gave them tags but they do not seem to be doing anything. I think the problem may be that the implemented interface can’t recognize the tags on the components in the BP? Do I need to somehow send the break hit result to my button’s Blueprint to check against the tags? I want to keep all of the code in the machine blueprint itself.

the button/machine
image

the BP for the machine

the BP for the popup linetrace in the player BP

Thanks!

why not just pass the hit component in the interface and then compare?

Your logic says “either or”, it won’t ever show both UIs.

Try using a sequence instead, to execute both Branch one after another, so that the second Branch will execute regardless of whether first Branch passes or not.

How would implement this? Sorry for the newbie questions!

Thanks!

I had no idea that was a feature! Thank you!

The component tags do not seem to be working. They are always firing both at the same time. I have all the non-interactable meshes set to ignore trace collisions. However, I have the two buttons set to BlockAll. If I look at one button it shows the popup for both.

youve got the hit component in the line trace hit results, add that as an input to your interface function then on you branch just compare components instead of tags

also having your visibility set to false on tick is going to cause problems, it should be event driven.