Set up dialogue in Unity by importing the Dialogue System, adding the Dialogue Manager prefab, and creating a database via the Create button.
Whether you’re building an RPG, a narrative adventure, or just adding NPC conversations to your game, getting the Dialogue System for Unity running is straightforward once you know the order of operations. If you’re more interested in hearing conversations than building them, check out our tested roundup of the best center channel speakers for dialogue — but if you’re here to code, let’s get moving.
Install the Dialogue System Package
Import the package through Unity’s Package Manager.
Create Your First Conversation
Core setup takes three steps. Create a new scene, drag the Dialogue Manager prefab into it, and click its Create button to generate an initial dialogue database. The manager handles all the heavy lifting — it’s the brain that runs every conversation in your game.
Open the database in the Dialogue Editor and switch to the Conversations tab. Click + to add a new conversation, then right-click the START node to create a child node. Enter your dialogue text in the Inspector. The Dialogue Editor is where the entire script of your game lives, so take time to learn its layout early.
Instead of editing the original prefab directly, the quick-start guide recommends making your own prefab variant of the Dialogue Manager. This keeps the original intact for future updates and makes rolling back changes much easier.
What Is the Best Way to Trigger Dialogue?
The docs offer two clean paths for starting conversations. The first is calling DialogueManager.StartConversation() from a C# script — useful when you need precise control over when dialogue fires. The second is adding a Dialogue System Trigger to an NPC or interactable object, which is perfect for zone-based or proximity-triggered conversations.
For player interaction, add a Usable component to the trigger object and a Selector or Proximity Selector to the player. To link a GameObject to a specific actor, add a Dialogue Actor component — this tells the system who’s speaking and connects their portrait and name to the conversation.
To disable movement during conversations, add Dialogue System Events to the player and configure OnConversationStart() and OnConversationEnd(). This prevents players from walking away mid-dialogue while still returning control the moment the conversation ends.
Common Setup Mistakes and Fixes
Second is forgetting to assign a custom UI — if you don’t want the standard dialogue UI, change it in the Dialogue Manager’s Display Settings > Dialogue UI field. Third is editing the original prefab rather than creating a variant, which makes updates painful.
| Setup Step | Where It Happens | Common Mistake |
|---|---|---|
| Import package | Package Manager | Wrong serialization mode on Unity 5.x |
| Add Dialogue Manager | Scene hierarchy | Editing original prefab instead of variant |
| Create database | Dialogue Manager Inspector | Skipping the Create step |
| Build conversation | Dialogue Editor | Ignoring START node structure |
| Trigger setup | Dialogue System Trigger or C# | Missing Usable component on NPCs |
| Player control | Dialogue System Events | Forgetting OnConversationEnd |
| Custom UI | Display Settings | Using default UI unintentionally |
When dialogue plays but nothing appears on screen, check the Dialogue UI assignment first. When conversations trigger instantly instead of on interaction, verify the Usable and Selector components are on the correct objects. When the player keeps moving during conversations, your OnConversationStart() event is either missing or not disabling the right components. One final tip: test with a simple two-node conversation before building your full game script, so you can isolate system issues from content errors. For more on the system’s full capabilities, Dialogue System’s official help center covers advanced topics like localization and save systems.
FAQs
Does the Dialogue System work with older Unity versions?
If your project runs an older editor, you’ll need to upgrade Unity first or consider a lighter dialogue solution that supports your version.
Can I use a different dialogue UI than the default?
Yes. In the Dialogue Manager’s Display Settings, you’ll find a Dialogue UI field where you can assign custom UI components. This is useful if you want a typewriter effect, a dialogue box in a specific style, or a fully custom presentation.
How do I stop players from moving during conversations?
Add Dialogue System Events to the player GameObject and configure the OnConversationStart() event to disable movement components and OnConversationEnd() to re-enable them. This keeps players locked in place during dialogue without requiring manual input locking.
References & Sources
- Dialogue System. Official Help Center and Documentation Covers installation, Dialogue Manager setup, triggers, and UI configuration.
