Page 1 of 1
Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Wed Nov 20, 2024 1:24 pm
by Zuza
Hi!
I am using cancel subtitle input to skip typewriter, however i realised it also skips my text input field when I select it, making it unusable. Is there a way to make it not respond to cancel subtitle input?
Love the tool so far and thanks in advance!
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Wed Nov 20, 2024 2:30 pm
by Tony Li
Hi,
Thanks for using the Dialogue System!
I recommend setting the Dialogue Manager's Input Settings > Cancel Subtitle Input and Cancel Conversation Input to None. Instead, use a continue button:
To disable the continue button during TextInput(), you can set the
SetContinueMode() sequencer command.
Also maybe helpful:
How To: Read Input From Player During Conversations.
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Thu Nov 21, 2024 9:34 am
by Zuza
Thanks for useful links. The ContinueFastForward script method could be easily adjusted to suit my needs. I just made it fast the typewriter forward and never progress dialogue. Works like a charm
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Thu Nov 21, 2024 9:50 am
by Zuza
Scratch that. Now i've noticed that this approach won't show my responses sooner...
So here's what I am trying to do in more detail.
I have a branching narrative with different responses after each Dialogue Entry. I do not use continue buttons. I have a typewriter effect which does its job however I want the player to be able to fastforward that - get all text visible + be able to choose from responses sooner. And it can be achieved by multiple approaches: cancel subtitle input (that you dont recommend) being one, the ContinueFastForward being the other (there are a few more I think). However those methods skip the text input field with what is already in there without the option to change it.
I thought i could work around that with ContinueFastForward that only skips typewriter (input works then), but of course then I have to wait regular amount of time (long) for response panel to pop out.
I am scratching my head unsure how to proceed. How do I speed up the response choice + typewriter without skipping the input field?
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Thu Nov 21, 2024 10:29 am
by Tony Li
Hi,
It sounds like you want the continue button to immediately progress to the response menu when clicked.
When you're using the StandardUIContinueButtonFastForward component and you click the continue button:
- If the typewriter is currently typing, it advances the typewriter to the end of the text.
- If the typewriter has finished typing and is already at the end of the text, it progresses to the response menu.
If instead you want to always immediately progress to the response menu (and advance the typewriter to the end of the text) as soon as the player clicks the continue button the first time, then remove the StandardUIContinueButtonFastForward component and clear all events from the Button component's OnClick() event. Then make sure the continue button is assigned to your subtitle panel's StandardUISubtitlePanel component > Continue Button field.
Also relevant if you're not using continue buttons:
How To: Control the Duration of Subtitle Text
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Thu Nov 21, 2024 11:36 am
by Zuza
Yes but forcing the player to click on the button to fast forward is not what I want to do UX wise. I want to allow him to click wherever or use a key on console(invisible UI button that takes whole screen is not that elegant either).
Even still, this approach progresses the text input field for me... Can I exclude it from the AbstractDialogueUI.OnContinue() method somehow ?
Re: Cancel Subtitle Input Makes Text Input Fields Unusable
Posted: Thu Nov 21, 2024 3:41 pm
by Tony Li
Hi,
If you use an invisible fullscreen continue button, SetContinueMode(false) will disable it during the TextInput() command. When the TextInput() command is done, the conversation will automatically progress to the next node since it's not waiting for a continue button click.
If you don't want to use a continue button at all, then you don't need to use SetContinueMode() either. Just set the Dialogue Manager's Subtitle Settings > Continue Button mode to Never. The conversation will automatically advance as soon as the dialogue entry node's Sequence is done. (More info in the How To: Control the Duration of Subtitle Text link above.)
If you want to wait for the player to press an input without using an invisible fullscreen continue button, set the Dialogue Manager's Continue Mode to Always. Then add a script to your subtitle panel that calls its OnContinue() method when the script detects whatever input you specify.