Announcements, support questions, and discussion for the Dialogue System.
SilverMoon17
Posts: 9 Joined: Tue Oct 17, 2023 2:06 pm
Post
by SilverMoon17 » Sat Feb 10, 2024 7:05 am
Is there any way to create a dialogue with 3 or more characters using the Dialogue System for Unity? I tried to do this using variables and barks. But I don't know how to control when bark ends. Here's what I tried
Code: Select all
public void SayTimeToSleep(Action OnComplete = null)
{
DialogueLua.SetVariable("TimeToSleep", true);
StartCoroutine(CheckBarkConditions());
IEnumerator CheckBarkConditions()
{
while (DialogueManager.IsConversationActive && DialogueManager.CurrentActor == this.transform)
{
yield return null;
}
OnComplete?.Invoke();
}
}
This doesn't work either, I tried
Code: Select all
public void OnBarkEnd(Transform actor){}
But it is called too early, almost immediately after bark starts. Is there some way to make a small dialogue between 3 and more characters?
Tony Li
Posts: 22112 Joined: Thu Jul 18, 2013 1:27 pm
Post
by Tony Li » Sat Feb 10, 2024 8:37 am
Hi,
If a dialogue exchange involves more than one dialogue entry, use a conversation instead of a bark.
You can assign two main characters to the conversation's Actor and Conversant:
multiple1.png (7.13 KiB) Viewed 161 times
And then assign other characters to individual dialogue entries:
multiple2.png (14.06 KiB) Viewed 161 times
See also:
Character GameObject Assignments
SilverMoon17
Posts: 9 Joined: Tue Oct 17, 2023 2:06 pm
Post
by SilverMoon17 » Sat Feb 10, 2024 8:51 am
How can I then change the conversation for the actors or how can I organize it all correctly?
Tony Li
Posts: 22112 Joined: Thu Jul 18, 2013 1:27 pm
Post
by Tony Li » Sat Feb 10, 2024 9:27 am
Hi,
I'm not sure what you mean. Can you give a specific example, even if it's just hypothetical?