Is there a way to only skip subtitles when a button is pressed? As far as I know, the Skip ActionLst setting makes the entire cutscene skip instantaneously but I only want the dialogue to skip dialogue by dialogue.
Is checking for Input.GetDown() and then calling SkipSpeech continually the best way?
It looks like you're new here. If you want to get involved, click one of these buttons!
Comments
Check Subtitles can be skipped? in the Speech Manager. You can then skip speech with mouse clicks, or by invoking the SkipSpeech input.
Already done that. I was looking for something where I can press and hold a button to skip subtitles continuously. As far as I know with "Subtitles can be skipped? option, I have to press the left mouse button again and again.
See the Manual's "Remapping inputs" chapter. You can override AC's InputGetButtonDown function to have it return true when the "SkipSpeech" is held down, not just pressed (i.e. first frame).
Something like:
Thanks!
Finally got around to trying this.
The game keeps crashing with
ArgumentException: Input Button InteractionA is not setup.
To change the input settings use: Edit -> Project Settings -> Input SkipManager.CustomGetButtonDown
If I add one button, the game crashes again, but complains about a different button not being setup. (first it was ToggleCursor, then it was EndCutscene and now it's this)
You can either define the required inputs (they're listed in the Settings Manager), or wrap a try/catch statement around it, i.e.:
Hey, I'm trying to do the same thing, skipping subtitles fast when the space button is held down. But I'm having some errors. I tried defining inputs and wrapping a try/catch. Can you help me? I'm a noob and artist (just to know).
I'm using V1.73.6
https://ibb.co/LCHSpsS
https://ibb.co/qx0NqkM
https://ibb.co/WfDh7pk
https://ibb.co/WyPM6Np
https://ibb.co/vQ0Ky6G
Thank you!
Replace:
with:
Thank you for your quick response Chris.
Like this?
I have an error now: "not all code paths return a value".
Add "return false;" just below the "catch" line.
Hm, now I have two errors. Sorry, I don't know what I'm doing...
https://ibb.co/ZS1Yk91
void Start ()
{
KickStarter.playerInput.InputGetButtonDownDelegate = CustomGetButtonDown;
}
private bool CustomGetButtonDown (string buttonName)
{
if (buttonName == "SkipSpeech")
{
return Input.GetKey (buttonName);
}
}
You're just missing the semicolon after the false:
Thank you, and sorry for wasting your time
No trouble.
Hi,
I've managed to get the text to skip via a button (currently set to Left control but will move this to space bar) However, I wanted this to automatically skip speech until a conversation choice is to be made.
I've tried putting the script into a blank C# script but keep getting an error pop up.
InputOverride.cs(21,56): error CS1002: ; expected.
I've got very limited coding knowledge and next to none in Unity. I assume I'm missing a ; somewhere. This is the code I'm using.
Any advice would be of great help.
Kind regards
Kal
It'd be needed at the end of this line:
I'm not sure the script will give you the intended effect, though. The "EndCutscene" input can be pressed to skip an ActionList until either gameplay resumes, or a Conversation becomes active.
Well I'm not getting the error message any more, thanks Chris
But the button still needs to be pressed again and again to skip dialogue. Have I done something wrong?
What I'm after is something like Renpy has where I can just hold a button and it zooms through the text until it has a choice to be made (conversation menu in this case) or it resumes the moment the player lifts up their finger from the key.
When you say EndCutscene, wouldn't that just skip straight to the next entire cutscene? rather than individual, dialogue: play speech actions.
Sorry for my lack of understanding, I'm still trying to wrap my head around all this. It took me a while to figure out just how to set up the input for SkipSpeech.
Can you share a little more detail about the exact behaviour involved, as well as screenshots of your Speech Manager?
Is this to say that such scrolling would be sped up while the input is held? Rather than invoking SkipSpeech, it may be a case of instead having a script affect the Speech Manager's variables when an input is held down.
Wow, first off Chris, I am so sorry I missed this response, I didn't realise I wouldn't get a notification if it wasn't a topic I started. That being said it's no excuse for me to miss it. I had to move on from this problem for the time being in order to push forward with the demo I am working on. Which has now been completed in an alpha state allowing me to start to refine everything.
https://drive.google.com/file/d/1nelVgYi-TapaQy6A3pGIcfHRkq2keVme/view?usp=drive_link
Hopefully this link works for the screenshot of the speech manager.
I'm not sure how best to explain what I want. Currently left crtl is set up to function like the left mouse click. But what I would love to happen is when this button (or even left mouse button) is held down it constantly skips the dialogue rather than having to keep pressing it. I do not want it to skip to a new cutscene or jump a huge chunk of dialogue until the next conversation happens.
Nearest I can think of is that holding the button down would act like an autoclicker until it's released.
Hope this makes more sense.
Also I hope you had a great Christmas and New years and once again so sorry it has taken me this long to find your reply.
Kind Regards
Kal
The image is private.
The script above should do this, though - but replace GetKey with GetButton.