Hi,
Pardon the long response. I want to make sure you have all the info you need. (If I missed anything, let me know!)
I'll include some simple suggestions below that use the Dialogue System's built-in Unity UI system. Keep in mind that the Dialogue System is modular. The built-in Unity UI system is pretty flexible and extensible, but if you don't like the way it's designed you can always
provide your own UI module. The rest of the Dialogue System -- the data model, the quest and save systems, the Lua environment -- will all work happily with any UI module that implements the handful of methods in the
IDialogueUI C# interface.
That said, what you're asking for is fairly easy to do with the built-in UI.
I'm not sure whether you're talking about the text in the response buttons when the response menu is shown, or the subtitle text that's shown after the player has selected a response. I'll cover both cases.
If the buttons are too small:
As
alfonso suggested above, use Menu Text. Personally, this is my preferred solution, too.
Every dialogue entry has a
Menu Text field and a
Dialogue Text field. Menu Text is shown in the response button menu. Dialogue Text is shown when the PC speaks the response that the player has selected. If either field is blank, the Dialogue System uses the other field. For example, if Menu Text is blank, the response button will use Dialogue Text instead.
One way to make the response buttons shorter is to use a short paraphrase for Menu Text and an expanded version for Dialogue Text. For example:
- Menu Text: "[shrug]"
- Dialogue Text: "[shrugs] I don't know. I just got here last night, and I've never been in this city before."
If you really need to keep the long text in the response button, try out some of the Unity UI prefabs such as Nuke and Generic. Their response buttons grow to fit the entire Menu Text. The response menu panel has a scrollbar in case the buttons are too big to all fit on the screen.
If the player response subtitle line is too small:
If the response subtitle line shows onscreen for too short a time before moving to the next stage in the conversation, inspect the Dialogue Manager. Decrease
Display Settings > Subtitle Settings > Subtitle Chars Per Second. This will make the line stay on screen for longer. For example, say the line is 90 characters. If you set Subtitle Chars Per Second to 10, then the line will display for 9 seconds (90 / 10 = 9). If you need extra time in a specific dialogue entry, use the
Delay() sequencer command -- for example, Delay(10) to wait 10 seconds.
To only enable the continue button for specific dialogue entries, use the
SetContinueMode() sequencer command. For example, use this Sequence:
Code: Select all
SetContinueMode(true);
required SetContinueMode(false)@99999
This first command turns on the continue button at the beginning of the dialogue entry. The second command turns off the continue button just before moving to the next stage in the conversation.
If none of these suggestions help, please feel free to post follow-up questions or send an example project to tony (at) pixelcrushers.com. I'll be happy to take a look.