Replies: 3 comments 10 replies
-
I think I've semi-diagnosed the root cause of my flicker-issue... The "hover/unhover" events are auto-triggered whenever I make a call to
I'm doing this now inside of the "Update()" method on our Nova UI's "InputManager.Update()" which calls "UpdateMouse" and I use this call to set "IsMouseOverUI" property for all others to see. It seems to be a BUG of Nova that a call to "Interaction.RaycastAll(ray, _mouseHits);" would induce an entire Update cycle which can fire Hover/Unhover/etc events. NOTE-- I think I may be wrong here. The UI events now seem to only be caused by "Interaction.Point(...)", not RaycastAll().. (I think I just saw it wrong, since both were being called from MouseUpdate() method.) |
Beta Was this translation helpful? Give feedback.
-
I see that this call is the one that ALSO feeds the event system: So removing my own RaycastAll() method did NOT fix this for me. It still flickers -- oscillates to thinking I'm hovered over a child UIBlock rather than the parent/etc. I think this would all be fixed by simply being able to set "which UIBlocks are ignored for the Hover/Unhover" events (and all other events). My hierarchy at this point shown here is 11 deep (RaycastAll, returns a list of 11 UIBlocks). By setting "Ignores" to many of these UIBlocks, I could reduce this hierarchy depth, and perhaps that alone would just magically fix this issue. |
Beta Was this translation helpful? Give feedback.
-
Good assessment and analysis najak. I have been similarly frustrated with |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I've changed the title to prefix "UNITY BUG" - if you read below you'll see that this is the conclusion I reached. It ONLY happens inside Unity Editor while "docked OnFocus/Unfocused" modes. Dragging my Game window to it's own separate draggable window or Maximized - this defect does not happen. So my conclusion is -- "unity bug". (2023.2.3f1)
========
I've got a TreeView (you have the code from previous submission). I use "OnHover" to highlight the associated World Content, which looks nice. But as I move the mouse, there are tiny spots where it toggles between seeing the "TreeView Node" and it's child TextBlock.
So my question is this -- what's the best way to make the MouseRay/Hover logic NEVER see the child TextBlock/etc -- but only to see their parent Node, which is the object I'm wanting it to deal with.
I saw property "Navigable" which looks promising, but not sure if this is the right Property, nor even how to set this on a TextBlock, or any other UIBlock? I simply want to designate some UIBlocks as "NEVER HOVERED" -- the hover logic should ignore them entirely, and instead look beyond them to the underlying Parent hierarchy.
Here I'm using the HighlightPlus Outline Effect to outline the Supplier (Green) and Consumer (Red), for a resource demand transaction.
The issue is that the TreeView Highlight as well as the Outlines flicker occasionally, when the "OnUnhover" followed by "OnHover" are called rapidly as I move the mouse horizontally along the Tree View node... it should be keeping the SAME Hover -- no rapid toggling on/off.
I think I could work around this bug by simply setting the child UIBlocks to "not-Hoverable", which is what I'm asking above.
Beta Was this translation helpful? Give feedback.
All reactions