Getting Started

Start here if you want to understand the project quickly, open the right demo scene first, and see how the runtime and editor pieces fit together before integrating anything into your own game.

Audience: developers and reviewers Best entry point for first-time readers

What this project is

Dialog Graph System is a Unity asset with a clear editor/runtime split. Authoring happens in editor-only GraphView tools under Assets/DialogGraphSystem/Scripts/Editor. Playback happens through runtime components under Assets/DialogGraphSystem/Scripts/Runtime.

The main runtime coordinator is DialogManager. It reads a DialogGraph, shows lines and choices through DialogUIController, executes optional action nodes through DialogActionRunner, and exposes events for history and game-side integration.

Fastest way to see it running

  1. Open the project in Unity 2021.3 LTS or newer (verified on Unity 6).
  2. Open Assets/DialogGraphSystem/DemoScenes/DialogueDemo.unity.
  3. Enter Play Mode.
  4. Choose one of the three sample graphs from the demo menu:
    • Cafe Choices — branching conversation with player choices.
    • Control Room Actions — action nodes and waitable coroutine behavior.
    • Product Tour — linear dialogue with typewriter and portrait effects.
Read this as two systems The graph editor is the authoring workflow. The runtime manager and UI bridge are the playback workflow. Most integration issues happen when those responsibilities get blurred.

First concepts to understand

  • DialogGraph: the ScriptableObject that stores node collections and links.
  • DialogManager: the runtime state machine that traverses the graph.
  • DialogUIController: the bridge used to render lines, portraits, and choices.
  • DialogActionRunner: dispatches action nodes to UnityEvents or coroutine handlers.
  • DialogueHistory: records shown lines and selected choices for backlog display.
  • DialogGraphView: the graph authoring surface built on GraphView.

Minimum runtime setup

You need one DialogManager in the scene, one DialogUIController wired to scene UI, and at least one DialogGraph mapped to a dialogID.

using DialogSystem.Runtime.Core;
using UnityEngine;

public class GuardIntroStarter : MonoBehaviour
{
    public void Begin()
    {
        DialogManager.Instance.PlayDialogByID("intro_guard");
    }
}

First realistic flow

  1. Create a DialogGraph asset in the editor.
  2. Add dialog, choice, and optional action nodes.
  3. Connect the graph from Start to End.
  4. Assign the graph to a dialogID in DialogManager.
  5. Call PlayDialogByID.
  6. Let the manager drive UI, input, audio, and optional actions.
  7. Read history or the rebuilt transcript if you need reporting.

Recommended screenshots for this page

Demo scene

Demo scene

The included demo scene entry point — open this first to see a working conversation in Play Mode.

Runtime dialogue panel

Runtime Dialog Ui

Shows readers what working looks like in Play Mode.

Graph editor overview

Graph Editor Overview

Helps connect the authoring model to the runtime flow early.