Lyra UI classes and blueprints Integration in test project

Hi,

I am adding Lyra UI C++ code in test project, and at this moment UI partially works.

And I am looking for people who have familiar with Lyra Framework and can help me.

I have problem with settings window:

  1. I have implemented W_OUTPOSTS_HorizontalTabList blueprint which not working, Tabs above settings not appear and not showed in UI.
  2. “Back” Button and “Apply Settings” buttons not appear and not working.
  3. Have Some strange errors with W_OUTPOSTS_MenuButton blueprint.
  4. In W_OUTPOSTS_MenuButton blueprint text of the button after compiling disappear.

Please help me to resolve this issues, I do not understand what causing such errors and issues…

I am including Project Files for your convenience and to solve problem.

You can use these C++ files in your project too.

Ruslan

  1. I have found problem and im RegisterTopLevelTab function im ScreenMenu I should select ButtonTab which I have created.

To make Tab Buttons selectable and clickable you should add this method in ScreenMenu

To try to show “Back” “Apply Changes” buttons you should configure this in ScreenMenu blueprint:

But for some reason Back Apply and Cancel Changes not working and not shown in ScreenMenu in bottom action bar.

Please help me to resolve these issues..

I have found problem that Back, Cancel and Apply Changes buttons not worked, i just needed to specify it in ActionBar the bottom action bar button class.

I have created it but for some reason, action bottom bar buttons not getting Text, text is not setted and I completely do not understand why… Also Back button not working because of some CommonUI problem… Can you help me to fix it?

Here are new project files:

Please help me to resolve this strange CommonUI issues..

Glad you found the tab list part. For the bottom action bar, Back/Apply/Cancel buttons are CommonUI “bound actions”, and their label does not come from the button text you typed in the widget. Things to check:

  1. The button class you set on the action bar must derive from CommonBoundActionButton (Lyra’s W_BoundActionButton is the reference). Inside it, override the “On Update Input Action” event and set your text block there, using the display name of the bound input action. A plain button class never gets the text pushed to it, which matches what you see.
  2. The action must exist in your Common Input settings: Project Settings > Game > Common Input Settings (Input Data class) needs a Default Back Action / Default Click Action pointing at a data table row. If the row is missing or the table is not assigned, the Back button shows nothing and does nothing.
  3. On the activatable screen widget, register the actions in Construct (Register UI Action Binding with Input Action = your Back row and the On Execute Action handler) and set “Bind Visibility to Input Action” if needed. Actions are only active while that widget is the top of its stack.
  4. The bottom bar needs its Display Action Bar flag enabled on the screen, and the action bar widget must sit inside the same CommonActivatableWidgetStack or UI layer.

If the text is still empty after step 1, compare your button’s graph with Lyra’s W_BoundActionButton event by event, because Lyra drives the text from On Update Input Action as well.

Hi ChenDong,

I have tried to create such event, to override but it does not work:

Not really understand your words how to override such event:

  1. “The button class you set on the action bar must derive from CommonBoundActionButton (Lyra’s W_BoundActionButton is the reference). Inside it, override the “On Update Input Action” event and set your text block there, using the display name of the bound input action. A plain button class never gets the text pushed to it, which matches what you see.”

Can you show me on the blueprint solution how to fix it, that text on buttons to make to appear and create button Back, Apply and Cancel Changes which works.

Ruslan

Sorry, that wasn’t clear. The most likely reason you can’t find “On Update Input Action” is that the button Blueprint’s parent class isn’t CommonBoundActionButton. It only appears in Blueprints whose parent is Common Bound Action Button (or its child), not a plain Common Button Base or User Widget.

Steps:

  1. Open your action bar button widget. Click Class Settings, and in Details set Parent Class to Common Bound Action Button (or File > Reparent Blueprint). Compile.
  2. In the Graph, My Blueprint panel > Functions > hover Functions and click Override, then pick On Update Input Action. (If you don’t see it as an event, look in the Override list.)
  3. In that function, get the Input Action of this button (the Get Input Action node, or in Lyra’s W_BoundActionButton check how it reads the bound action), take its Display Name, and use Set Text on your Text Block. Make sure the Text Block is marked Is Variable.
  4. Check your action bar’s Action Button Class points to this new widget and that your Common Input Settings data table has Back / Click rows with display names filled in.

Please compare it to Lyra’s W_BoundActionButton for the exact nodes, since I’m going from memory and the exact function names can differ slightly between engine versions. If it still doesn’t show, post a screenshot of the Class Settings (Parent Class) and the Override list.

Hi ChenDong,

I have implemented this override of method but nothing helps, nothing works.

Class of bottom action bar widget is W_OUTPOSTS_ActionButton, and below this method which you said.

Please use my project below with possiblity to generate VS C++ solution to investigate this very hard to solve issue:

Ruslan

Also, why this method PushContentToLayerForPlayer from Lyra classes and functions not working (which works very well in Lyra Project)?? I have tried it in my ThirdPersonController blueprint:

Also standard PushWidget Method when properly connected not working:

These problems are in integrated project and I do not understand what cause such issues, please help me to resolve it…

have you checked this setting?

Already activated..

Can anybody help me to resolve these issues?