How can I make button controls for Touch Interface? (not joystick)

Hello all! I want button controls for touch interface. Virtual joystick isn’t my thing because contols are terrible. I have Carmageddon 1 on mobile and it’s controls are impressive. I play it with button interface. So… I really searched answerhub, forum, google, youtube but I couldn’t find any solution to this.

I want to control the vehicle on left of the screen and make it’s roll movement on right. On PC, you control the vehicle with WASD and make it’s roll movements with left, right or left,right mouse buttons. And it’s really easy and fun.

I made an example image here. I want the controls like this.

So, I see that I can achieve this not from controller inputs but from UMG. I watched HorusHeretic’s UMG tutorials on youtube and also I looked about dozens of similar videos, answerhub questions etc. and I saw that they are all about menu items or similar.

I couldn’t see any posts about binding input axis movements to UMG Widget buttons. Is it not possible to do that?

I’m wondering the same thing sort of thing, and it sounds like it isn’t currently possible. You can get onClick events for UMG buttons, but there is nothing that can tell you if the button is released or held down or anything. And they can’t currently map directly to an input axis or key binding or anything. There is a kludgy workaround though (check link) that might work for what you are trying to do.

Yeah. Unfortunately I too found out that UMG doesn’t support direct input from axis controls. Maybe in future updates they will advance UMG into a better thing. But for now, mobile controls are very, VERY problematic in Unreal Engine.

did you found any solution to this ? i have the same problem

Hello, did you found any method or something to do this?? :frowning:

Yea, crying shame. I’ve found myself also wanting this functionality. It would be very nice to have.

I created a tutorial video for this on my channel tonight. It is still uploading, but keep an eye on my channel and it will be there soon.

Youtube.com/rushgames

Inside the widget on your button, use the onpressed and onreleased events to set variables to true and false. Then using those variables do an event tick inside the player character bp with a branch, and add movement input node. Set the scale to the speed of which you want the character to move (Example: 600). Enjoy!

Here is video link:

And for rotation instead of add movement input…use control rotation.

Wow… thanks for that… don’t know if it will tell me what I need to know, but I learned something new about the engine in less than 2:00. (Didn’t know you could change folder color 0_0) EDIT: Thanks for the video. It made me realize that Epic has actually implemented OnPressed and OnReleased functionality already. For some reason I thought that this was still a pending feature request.

Scroll down, this might help u.

Hi there! If anyone is still looking for a solution for this:
In the interface - create a new member, set its size, thumb size and interaction size for the same amount. After that add ONLY the Image 2, leave the Image 1 blank. At the bottom You have the setting “Main Input Key”, bind it for some gamepad button (this is usefull as the game will be ready to use a gamepad already).

After that the thumb of the joystick should be still in place and work like a button.

The only thing to do now is to add the gamepad input button you have chosen to the input action mappings.

Have fun!

1 Like

I’m looking for this answer…thank yo for this…one question what do you mean bind it? For some reason I can’t get the button to execute when pressed…only if I drag it…I want to make a jump button…any ideas?

His answer kinda doesn’t work for the reason you’re saying. Seems the default solution is to make the buttons on UMG. The buttons need to have “is Focusable” as false, as to not steal focus from the joystick though.

1 Like

At last the answer.
Thank you so much!