Ongoing conversation lines during response - Telltale style

Announcements, support questions, and discussion for the Dialogue System.
User avatar
Tony Li
Posts: 22110
Joined: Thu Jul 18, 2013 1:27 pm

Re: Ongoing conversation lines during response - Telltale style

Post by Tony Li »

Hi,

I updated the example scene linked above. The conversation now looks like this:

Image

NPC line 3 hides the response menu using this Sequence:

Code: Select all

SetActive(Response Menu Panel,false);
{{default}}
NPC line 4 shows the response menu using this Sequence:

Code: Select all

SetActive(Response Menu Panel,true);
AnimatorTrigger(Show,Response Menu Panel);
{{default}}
The next NPC node changes to a different response menu.

If you want a UI button to show the response menu, you can add a Dialogue System Trigger to the UI button GameObject. Set its Trigger to OnUse. Selection Add Action > Play Sequence, and use the same SetActive() and AnimatorTrigger() commands above:

Image
8uddie wrote: Wed Sep 05, 2018 11:59 amCould I have ButtonUI in the scene that will pop up to let the player prompt the ResponseMenu themselves to begin with ? almost like QTE but with choices.
When you talk about tags, you're starting to get to the complexity of EternalAmbiguity's solution in that Unity forum thread, so you may want to check it out. But if you want to just jump to a specific dialogue entry, you can configure a button to stop the current conversation and start it at a specific node ID. The shortest way is to write a little code:

Code: Select all

DialogueManager.StopConversation();
DialogueManager.StartConversation("Title", actor, conversant, entryID);
There should be no problem linking across conversations. Can you show me how your conversations are linked?
juliusdays
Posts: 10
Joined: Thu Dec 20, 2018 4:41 am

Re: Ongoing conversation lines during response - Telltale style

Post by juliusdays »

This is also what I needed. NPC subtitle with Player Responses. Thank you :)

Code: Select all

public void ShowSubtitle(Subtitle subtitle)
    {
        if (DialogueManager.currentConversationState.pcResponses.Length >= 2)
        {
            ShowResponses(subtitle, DialogueManager.currentConversationState.pcResponses, DialogueManager.displaySettings.inputSettings.responseTimeout);
        }
    }
   
Post Reply