Hi! I'd like to allow the player to set their name during the first conversation of the game. I'm using the text input field from the basic UI prefab and this sequence:
However, when I type in the name and press enter, nothing happens. If I remove the SetContinueMode, it just uses the default playerName value on the next piece of dialogue. Am I missing something?
The Dialogue System cache the participants' names at the start of the conversation so it doesn't have to take time to look up the name with every subtitle. This is good for performance, but the downside is that you need to tell the Dialogue System that you've changed the underlying Display Name by using ChangeActorName().
So assuming your dialogue entry has this Sequence:
That's super helpful and likely would have been my next question! But I should have been more clear about my problem -- the conversation doesn't advance when I hit enter. Before I disabled the continue button, it would just use the default name. So I guess my actual question is how do I get the input from the text field to actually be confirmed and stored in the variable?
TextInput(Text Field UI,Name:,playerName);
SetContinueMode(false)
then it should automatically advance when you press Enter. This is because SetContinueMode(false) tells it to not wait for a continue button click, and TextInput() ends when you press Enter. Since the sequence isn't waiting for a continue button click, it will end when TextInput() ends.
It looks like my issue was with the Input System not being set up properly and not with the dialogue sequence, which I didn't catch because clicking the continue button was working. Thanks for the help!