Dynamic nested Radial/Pie menu

Dmitry Gribov - 代码插件 - 2023/04/01

Shader-based multilevel radial menu.

  • 支持的平台
  • 支持的引擎版本
    5.0 - 5.4
  • 下载类型
    引擎插件
    此产品包含一款代码插件,含有预编译的二进制文件以及与虚幻引擎集成的所有源代码,能够安装到您选择的引擎版本中,并根据每个项目的需求启动。

Showcase video

Tutorial video

Widget with nested radial (“pie”, “flower”) menu. No WYSIWYG by now, but the menu is easily defined by self-explanatory JSON, by blueprints and in C++ (and any mixture of the above).

Each “leaf” has its title, icon and action.

Each leaf may serve as a submenu as well, then the click will open new “pie” and so on and so forth. You can “hardcode” a widget or deploy at runtime.

Customizable colors, rotation, custom icons for each menu item, custom menu proportions. Take any action upon menu click – events are exposed to both blueprint and C++.

Two modes of interactions are always available: obvious click-click-click and faster “click-drag-release”.

技术细节

Features:

  • One draw call per pie menu, extremly performant
  • Precise segment click detection
  • Unlimited menu nesting. Each new level is positioned automatically
  • Two modes of operation - click-click-click and click-drag-release
  • All the complex logic is optimized in C++
  • Each event includes the whole history of clicks (i.e., if user clicks 3-lvl deep menu “Huge” you will know that he clicked “Deploy”, then “Bomb” and, finally, “Huge”.
  • Similarly-looking basic round button to be used alongside a menu
  • CSS-like styling, one asset to change look for many menus

Number of Blueprints: 2

Number of C++ Classes: 3

Number of custom shaders: 2

Support on the Discord

Documentation: Video tutorial

Example Project for UE (useless without a plugin): https://github.com/gribuser/PieMenuDemo

Example binary build: PieMenuDemoBin.zip