Trigger Event using Motion Controllers

What is the best way to setup my motion controllers for the Vive to trigger other actors? For example right now I have on my Pawn an event “MotionController (R) Trigger” with a trace on it to change wall colors when the trace cast to the walls. But I have a custom script on my doors (separate actor) that I want the same button to open the door. It appears that I can not create another “MotionController (R) Trigger” on my Door’s blueprint, so I used an Event Dispatcher. This works, but ALL of my Doors are opening when clicked with the MotionController (R) Trigger.

How can I set this up so it opens one door at a time? Or even better, how to get a “On Clicked” event on an actor that can be clicked by the MotionController, is that possible? Here is a screenshot of the function to open and close the door:

Best way I’ve found so far is to use Blueprint Interfaces.

Its quite simple.

First off make a Blueprint Interface. You can find this easily in the right click menu.

Then in that make a simple function with just a event. With that event add one input being “Primitive Component Reference”

Next with every object you want to interact with, you have to implement that Blueprint interface. You can do this by selecting the class settings of each blueprint and adding the new blueprint interface.

Then with the hit result of your trace you can send it to the blueprint interface event, you can even check to see if it implements the interface before you even send the hit component.

Then say for example with a door, you can implement and add that blueprint interface event to that unique blueprint. Get the event of the blueprint interface and resulting hit component and then just compare it.

So using an equals you can see if the hit component is true or not and then do something. If you still don’t quite get it, I do suggest learning about Blueprint interfaces. So far it has worked really well for me.

1 Like