DryDialog is a basic dialog system that base itself around "Expressions" that can be either Assertions or Questions - the dialog system works similar to a tree. Create new conversations and append expressions to it, call an event to trigger it at its manager and start talking! This is the first version of DryDialog developed for my final's paper game "Kingdom's Symphony".
- Easily create extense Dialogues with options such as repeatable, speaker name and portrait...
- Basic but useful Question/Answer System.
- Few Manager customizations, like: Show Gradually, Seconds Between Expressions, Can Skip to Next Expression, Serialize Options...
It is a basic system developed for a MVP, feel free to tweak as you need it. When integrating with the answer event, an idea is to create a dictionary of <string, Func> and use the value returned as the key to execute what you need to be executed. I still need to create it as a Unity package or something like that, I'll figured it out later.
- Create a new Conversation.
- Customize it.
- Create a new Expression, can be either an Assertion or Question. In this example, was created an Assertion... if you create a Question, you shall create the answers.
- Customize it. The Feedback is where the magic happens, each Expression can have a Feedback of another Expression... imagine like the Conversation as the root of the tree and the Expressions and it's feedback's are branches.
- Add the new created Expression to the Conversation's (created at Part 1) Expressions array.
-
Create a Dialog Manager like the one on the Example scene.
-
And then, finally, Call the Event "Talk" as the example below:
using UnityEngine; public class EventCaller : MonoBehaviour { public Conversation conversation; void OnEnable() { DialogManager.AnswerChoosen += HandleAnswerChoosen; } void OnDisable() { DialogManager.AnswerChoosen -= HandleAnswerChoosen; } private void HandleAnswerChoosen(string value) { Debug.Log(value); } void Start() => DialogManager.Talk(conversation); }







