Giter VIP home page Giter VIP logo

uinavigation's People

Contributors

goncasmage1 avatar josator avatar peralysis avatar seb-exiin avatar v-kuskov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uinavigation's Issues

Some keyboard buttons will cause the first OnSelect event to not trigger after the first opening

Okay, this is a strange issue and I'm sure the title is a little confusing so I'll walk through it simply so its understood because it took me a while to isolate it. The attached project is a super simple example that also reproduces the issue so hopefully there's no confusion.

In TestPlayerController there are 2 key bindings that Create a Widget/Add to Viewport a UINavWidget with some buttons. These bindings are Spacebar and the P key.

  1. Run project
  2. Press P key
    expected: menu opens
    actual: menu opens

The buttons in the menu UINavWidget are configured to exit the menu via any OnSelect event.
3) Press Enter key
expected: menu closes
actual: menu closes

  1. Press P key
    expected: menu opens
    actual: menu opens

  2. Press Enter key
    expected: menu closes
    actual: menu does not close

  3. Press Enter key again
    expected: menu closes
    actual: menu closes

When ever the menu opens after the first round of open/close, the first Enter key event does not trigger the OnSelect event, but only when opening the menu with certain keys. It does always trigger the KeyDown event, so something is blocked in between KeyDown and OnSelect. My guess is the stuff in OnPreSelect.

If however, the spacebar is used to open the menu, there are never any issues. I have noticed the P key and Delete key to cause this behavior. Might be more, I haven't tested others.

UINavigationFocusBug2.zip

Allow addition of empty 2d grid for runtime manipulation, like 1d grid demonstrated in tutorials

Implementing a real dynamic inventory system involves 2d grids and runtime manipulation, which doesn't seem to be currently supported. I removed all the parameter count checks in AppendNavigationGrid2D and dropped in UINavButtons.Num() > 0 ? UINavButtons[NumberOfButtonsInGrids] : nullptr in 2nd param of FGrid ctor, and all seems to work fine. I suspect you'll still want to validate the parameters in some way, but the point is, an empty 2d grid that is populated at runtime should be allowed and verified works fine.

Expose UUINavWidget.bParentRemoved to blueprints

It would be really cool if you could expose bParentRemoved to blueprints. Spent a minute trying to figure out why parents were closed when adding child. Tracked it to this bool but I had to enable in c++.

Editor crash

The editor crashes with this error
UE4Editor_UINavigation!TMapBase<FString,TArray<FKey,TSizedDefaultAllocator<32> >,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FString,TArray<FKey,TSizedDefaultAllocator<32> >,0> >::GenerateKeyArray<TSizedDefaultAllocator<32> >() [A:\Program Files\Epic\UE_4.23\Engine\Source\Runtime\Core\Public\Containers\Map.h:546] UE4Editor_UINavigation!UUINavPCComponent::FindActionByKey() [E:\Coding\UE4Projects\UiNav\Plugins\UINavigation-2.14.0\Source\UINavigation\Private\UINavPCComponent.cpp:606] UE4Editor_UINavigation!UUINavWidget::OnKeyReleased() [E:\Coding\UE4Projects\UiNav\Plugins\UINavigation-2.14.0\Source\UINavigation\Private\UINavWidget.cpp:480] UE4Editor_UINavigation!UUINavWidget::NativeOnMouseButtonUp() [E:\Coding\UE4Projects\UiNav\Plugins\UINavigation-2.14.0\Source\UINavigation\Private\UINavWidget.cpp:460]

Do you know why this happens?
Or is it possible to fix it?

Thanks

Can't use the plugin in assets used from C++

I have a game mode in C++ which references a HUD defined in BP, which in turn uses an UMG Widget Blueprint.

Now, I don't know if that's a bad idea for other reasons โ€” I'm a beginner โ€” but it's working so I'll stick with it for now.

However, next time I started the editor after making that change, it gave me errors on load. Can't find file for asset. /Script/UINavigation. The reason for that is that project C++ files are loaded before the Standard loading phase.

I edited UE_4.21\Engine\Plugins\Marketplace\UINavigation\UINavigation.uplugin and changed:

"LoadingPhase": "Default",

to

"LoadingPhase": "PreDefault",

and now it works. Thanks the intahwebs for the solution.

[Bug] typo

Lazy to pull, so...
UINavWidget.cpp:1040

Help with unusual buttons layout

Hello. First of all, thanks for your marvelous plugin, it's helping me a lot!
I'm making a virtual keyboard for my game but I don't know which navigation method to use. Grid, Vertical and Horizontal doesn't work. Any out-of-the-box solution?

image

Buttons of child menu not focused when parent removed?

When opening a child menu from a parent menu using Go to Widget when Removed Parent is checked will cause the buttons of the child menu not to be navigable by the keyboard. See attached project. Here are the repro steps:

  1. Ensure Remove Parent checkbox in Go to widget in Test Menu is un-checked
    image

  2. Run project

  3. Press Spacebar to open parent menu

  4. Press Enter to open child menu

  5. Press W or S
    Expected: button changes
    Actual: button changes

  6. Stop project

  7. Now, Toggle the Remove Parent checkbox in Go to widget in Test Menu to be checked
    image

  8. Run project

  9. Press Spacebar to open parent menu

  10. Press Enter to open child menu

  11. Press W or S
    Expected: button changes
    Actual: button do not change

UINavigationChildFocusWhenRemoveParent.zip

Cannot Create Two Instances of UINavPlayerController

Problem:
I have a scene that creates two instances of UINavPlayerController onBeginPlay (for a local multiplayer game). Before the scene starts, the editor crashes.

Environment:
I'm running UE4.22 on Windows 10 64-bit.
I have a blank project with a blank scene.
The scene uses a custom game mode that creates player 0 and player 1 on BeginPlay.
The custom game mode uses UINavPlayerController as its default controller class.

Error Message:
UINavCrash

Potential Solutions:
The error points to a "BindAction" problem. Maybe it could be solved by setting up some additional actions in the project settings? Something is going wrong on input for the second player.

[Bug] broken fullscreen buttons

Fix FS buttons (Alt+Enter & F11)
if (GEngine && GEngine->GameViewport && GEngine->GameViewport->TryToggleFullscreenOnInputKey(InKeyEvent.GetKey(), IE_Pressed)) return FReply::Handled();
at the beginning of the function UUINavWidget::NativeOnKeyDown works for me

[Bug] UINavPC can be NULL

If the player controller changes while the widget exists then UINavPC becomes invalid. For example, this can happen if you create a widget in a singleton (GameInstance). Wrap all calls with getters better.

Unable to package.

Unable to package with Shipping Win64 and nativize blueprints.
This happens when attempting to use the plugin only in the project folder and not from the Engine install.
Attempting to package will cause errors saying that headers can't be found.

The workaround, for now, is to copy the plugin to the Engine plugins directory.

Maybe make an option for the plugin to be used in the project folder?

Compile errors when adding new C++ class

Hello.
When I add a new C++ class, empty or not, to my game (that's using UINav) I get compile errors related to this plugin. These are the errors:

2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(44) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(49) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(51) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(53) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(56) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputBox.h(59) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module. 2>C:/Program Files/Epic Games/UE_4.21/Engine/Plugins/Marketplace/UINavigation/Source/UINavigation/Public/UINavInputComponent.h(20) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module.

Even an empty C++ class returns this error when compiling. If I delete the newly added C++ classes, I get no more errors and I'm able to compile.
I'm using UE4.21

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.