Tala Esenlikler

0 %
Tala Esenlikler
Unreal Engine
Developer
About Me

I’m a systems-focused Unreal Engine developer with 7+ years of experience creating plugins, gameplay frameworks, and editor tools. I specialize in building modular, multiplayer-ready systems using Blueprint and C++, and I’ve released 10+ products on the Fab Marketplace — 4 of which were featured in sponsored promotions.

  • Residence:
    Türkiye
  • City:
    Ankara
Turkish
English
Unreal Engine 5
Blueprint Scripting
C++ Programming
Animation Tools
UI/UX Systems (UMG)
Material Integration
Custom Tools & Editors
Replication & Multiplayer
Visual & Art
Blender 3D
Photoshop / Affinity Designer
Development Practice
  • Git Knowledge
  • Documentation & Support
  • Debugging & Validation
  • Modular Design Standards

Input, Navigation & Keybindings

Unreal Engine supports multiple input types by default, but making a clean and responsive UI across mouse, keyboard, and gamepad takes planning. Ultimate Menu System handles this for you — and gives you full control to customize behavior at any point.

Whether your players are using a mouse to click through panels or navigating with a controller D-Pad, this system ensures a consistent and intuitive experience. Let’s walk through how it works and how you can tailor it.

Input System Overview

This menu system supports:

  • Mouse (click-based)
  • Keyboard (WASD / Arrow Keys / Tab)
  • Gamepad (D-Pad, Analog stick, face buttons)

You don’t need to do anything special — everything is already wired up in the Blueprint layer. But if you want to customize or expand the input behavior, here’s what you should know.

UMS uses a clean, consistent approach to menu navigation based on navigable widgets — usually buttons — that are defined in each panel.

To define navigation targets:

  1. Open your widget (e.g. WB_MainMenuPanel)
  2. Implement the interface event GetNavigables
  3. Return an Array of Buttons (or other navigable widgets) in the desired order

This defines the directional navigation behavior — whether you’re using arrow keys, gamepad, or keyboard.

If you’re using a tabbed layout, navigation needs to pass through a slightly different flow.

Here’s how to set that up:

  1. Implement Get Tab Constructor Reference
    • This provides access to the WB_TabMenuConstructor from your panel
  2. From there, grab the current tab’s panel
  3. Call GetNavigables from the active tab panel, not the root widget

That way, input focuses only on what’s currently visible — keeping things intuitive.

Keybindings

Yes — keybindings are supported. You can control what buttons open menus, switch tabs, or trigger pause functionality.

To adjust:

  1. Open WB_MenuMaster
  2. Locate the Keybinding Section under exposed variables
  3. Change the keys based on your design (e.g. Pause = Esc, Back = B)
  4. Bind your desired functionality inside the Player Controller using interface calls if needed

Tip: You can also define separate keybindings per platform, or extend the system with Enhanced Input logic.

Fine-tuning UX? You can adjust:

  • Navigation input delay
  • Transition animation delays
  • Content toggle speed

These values are all exposed in WB_MenuMaster so designers can iterate without modifying core code.

Custom Navigation Events

Advanced use cases? You can override:

  • When buttons become interactable
  • Which direction moves where (e.g. custom Up/Down logic)
  • Conditional focus (e.g. skip tabs if locked)

All of this can be handled in Blueprint logic in the GetNavigables return array or through navigation callback events.

What’s Next?

Your menu is now fully input-aware, responsive, and cross-device ready.

In the next section, we’ll look at how to construct tabbed menus, configure the master menu settings, and optimize performance using widget pooling — all essential for scalable menus.

Reddit
LinkedIn
Facebook
WhatsApp
X
Email