Page 1 of 2
Question about Dialog UI
Posted: Fri May 13, 2022 5:37 pm
by Morgank
Hello!
I bought Dialog System not so long ago, but still wasn't able to find out if it's possible to set things up so that every new dialog entry would be shown on new GameObject with TextMeshPro. Is it possible to do this? Can someone give me advice how to realise this if it's possible? Thsnk.
Re: Question about Dialog UI
Posted: Fri May 13, 2022 5:39 pm
by Tony Li
Hi,
You can use the SMS Dialogue UI prefab. Despite its name and appearance as a text messaging UI, you can restyle it to look however you want.
Re: Question about Dialog UI
Posted: Fri May 13, 2022 5:59 pm
by Morgank
Thanks! I've never used it, so will try to figure out how to restyle it.
Re: Question about Dialog UI
Posted: Fri May 13, 2022 8:52 pm
by Tony Li
As a first step, I recommend trying out the SMS Dialogue UI as-is just to see how it works.
Then duplicate it and use your duplicate. NPC lines will use copies of the NPC Message Template. Player lines will use copies of the PC Message Template.
Re: Question about Dialog UI
Posted: Sat May 14, 2022 4:09 pm
by Morgank
Thanks for the advice. Can I ask some more question. Is there any way to trigger animations for 4 GameObjects at start of conversation and at the end? One by another at the begining and all at once at the end.
Sorry if this is commonly known information. I'm only trying to understand Dialogue system. Thanks.
Re: Question about Dialog UI
Posted: Sat May 14, 2022 4:58 pm
by Tony Li
Morgank wrote: ↑Sat May 14, 2022 4:09 pmIs there any way to trigger animations for 4 GameObjects at start of conversation and at the end? One by another at the begining and all at once at the end.
Yes. Use
sequencer commands (
tutorial). For example, in the first node you could set the Sequence to something like:
Code: Select all
{{default}}; // Also play Dialogue Manager's Default Sequence.
AnimatorPlayWait(Anim1, Object1)->Message(Done1);
AnimatorPlayWait(Anim2, Object2)@Message(Done1)->Message(Done2);
AnimatorPlayWait(Anim3, Object3)@Message(Done2)->Message(Done3);
AnimatorPlayWait(Anim4, Object4)@Message(Done3)
And in the last node:
Code: Select all
{{default}};
AnimatorPlay(Anim1b, Object1);
AnimatorPlay(Anim2b, Object2);
AnimatorPlay(Anim3b, Object3);
AnimatorPlay(Anim4b, Object4)
Re: Question about Dialog UI
Posted: Sat May 14, 2022 5:58 pm
by Morgank
Thanks for your help, Tony. I'll be sure to look into the sequences tomorrow.
Can I ask you one more question? Is there any way to assign the continuation of the dialog to the mouse button click through the new input system?
Re: Question about Dialog UI
Posted: Sat May 14, 2022 10:30 pm
by Tony Li
Morgank wrote: ↑Sat May 14, 2022 5:58 pmIs there any way to assign the continuation of the dialog to the mouse button click through the new input system?
Yes, it's the same as Unity's built-in input manager.
1. Inspect the Dialogue Manager GameObject. Set Display Settings > Subtitle Settings > Continue Button to Always.
2. Make sure your scene has an EventSystem.
3. Add a continue button to your dialogue UI's subtitle panels if they don't already have one. All of the prefab dialogue UIs that ship with the Dialogue System have continue buttons.
If you want mouse clicks to advance the conversation no matter where the cursor is, set the continue button's size to cover the whole screen, and set its Image color alpha to zero so it's invisible. This allows the player to click/tap anywhere onscreen to continue. You can usually move it to be a direct child of the Dialogue Panel and/or add a Layout Element and tick Ignore Layout. This will make it easier to configure the Rect Transform to cover the whole screen.
Re: Question about Dialog UI
Posted: Sun May 15, 2022 6:11 pm
by Morgank
Thanks alot! One last question and the template for my game will be completed. When I close the dialog the system does not load the closing animation of all objects with NPC and PC messages. Is there any way to change this? I tried to enter the trigger name to the Dialogue Panel GameObject, NPC Message Template and PC Message Template GameObjects, but nothing changed.
Re: Question about Dialog UI
Posted: Sun May 15, 2022 6:57 pm
by Tony Li
Hi,
The SMSDialogueUI / TextlineDialogueUI is not designed to play "hide" animations on every single message instance that the conversation has added to the dialogue UI.
It should, however, play the main dialogue panel's hide animation if you've configured one. Make sure your dialogue panel has an Animator component with an animator controller. If you're playing the conversation while the game is paused (i.e., Time.timeScale == 0), set the Animator's Update Mode to Unscaled. Set the UIPanel component's Hide Animation Trigger to the name of the "hide" trigger parameter in the animator controller. Also tick the main StandardDialogueUI component's Conversation UI Elements > Wait For Close checkbox.