Hello,

I found that when an interaction machine is set to Blocking, all interaction machines set to Blocking will no longer respond to mouse click behavior if the Schematic executed in that machine blocks player control. Machines set to Single will continue to work.
Is this a feature? I need this feature, but it looks like a bug...

I created a custom node to enable Nani Novel's dialog system, so I need to execute this custom node after the player clicks on a sprite and disable player interaction from clicking on the sprites I want to disable, to prevent a new machine being started.
I have read the code about block player control node, but I don't see anything to disable player click actions. Is there any way to disable and enable this type of interaction?

One more noob question, how do I change the fade-out times when UIBox is closed? I went through the documentation all afternoon and couldn't find the relevant information...
  • I set a global variable to check if Nani Engine is running, and set this variable to a condition template to block new machine starts. I wonder if there is a smarter way to do this...

    I thought I could block the raycasts via Nani Novel's continueInput ui prefab(it's a full screen ui element), but I found that the ui doesn't block 2D Raycasts, even though I've added the Canvas Group and set Blocks Raycasts to true. but then I found ORK's UIBox with the UIReceiveCursorEvents script mounted and Cursor Over option set to true, can block 2d raycasts perfectly, but I read the code and couldn't figure out why...
    I already know that blocking UI Raycasts requires checking if the click/touch is on the UI, and then the game object who receives the 2D Raycasts ignores that click/touch action, but this seems to complicate the problem even more...

    By the way, there is a bug in Schematic's Machine Start Variables, if you add a Local Start Variable of string type and set the Default Value, the Default Value will be recognized as a Variable. You can scan for it in Editor/Variables/Schematic Variables.
  • Well, Blocking execution is exactly for that - only one Blocking machine can run at a time, so all other will not be able to start.
    If machines shouldn't start while player controls are blocked, you need to add a game state condition checking the player control state.

    UI boxes fading in/out is handled by the schematics you use to animate them (either in the individual UI box's settings or the general settings of UI boxes). Or, if you use animation setup on the UI box prefab, that's where to check.

    The string start variable value being recognizied isn't really a bug, it's just how scanning for variable works by checking for that kind of input field. It'll also recognize other non-variable key settings :)
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • When I switch to Nani Engine, the blocking machine is already executed, so clicking sprite will execute the machine again, but if player controls are blocked, the blocking machine will not start, whether it has been executed or not. I didn't add any game state condition for check the player control state, so this may be a bug.
    Anyway, the problem has been solved :)

    I found the tutorial on Open and Close UI Animations, sorry I didn't see it in the tutorial section of ORK before. But I don't understand why the Data Key is set to "ui" and why this Selected Data is a Value type...I'm confused by it, does this mean that all instances of UI boxes are selected? How do I select a specific UI box?

    thanks for your help!
  • The UI box that uses the schematic is set as local selected data with the key ui.
    Same for animating HUDs with schematics, where the individual HUD instance is set as ui selected data.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Got it, thanks!

    I found that the UI can still interact when fading out, although ORK does a good job of blocking the interaction events, the button transitions will still be effective with the mouse actions. I wrote a custom node to set the IsClickable property of UIBoxComponent, but I don't feel this is a good solution...any better suggestions please?
  • Not really - the issue with setting stuff not not be interactable is that the inputs will be displayed as 'disabled', changing the look completely :)
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Sign In or Register to comment.