Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/merpheus-dev/NodeBasedDialogueSystem
Node Based Dialogue System for Unity
https://github.com/merpheus-dev/NodeBasedDialogueSystem
dialogue-systems graph-view graphview node-based unity unity3d
Last synced: 2 months ago
JSON representation
Node Based Dialogue System for Unity
- Host: GitHub
- URL: https://github.com/merpheus-dev/NodeBasedDialogueSystem
- Owner: merpheus-dev
- License: mit
- Created: 2019-11-23T23:46:02.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-28T06:29:34.000Z (over 1 year ago)
- Last Synced: 2024-08-02T13:24:45.018Z (6 months ago)
- Topics: dialogue-systems, graph-view, graphview, node-based, unity, unity3d
- Language: C#
- Homepage:
- Size: 1.24 MB
- Stars: 810
- Watchers: 24
- Forks: 94
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Node Based Dialogue System for Unity
This is a node-based visual narrative flow creation tool that uses Unity's GraphView API.
![](https://i.ibb.co/JngH8yr/header.png)## Features
- Infinite Branching and Merging dialogue capability.
- Dialogue&Graph save/load system.
- Minimap for easy navigation.
- Search window for node creation.
- Blackboard and exposed property support.
- Comment blocks for grouping nodes.
- Backed by Unity's embedded GraphView api.
- Sample provided in the package.## Usage
- Graph generates dialogue saves into _Resources_ folder as a scriptable objects.
- Create a field as **DialogueContainer**
- Use **DialogueContainer** to access _DialogueNodeData_ and _NodeLinks_## NodeLinks
Node Links is a serialized class that holds node connection and *branching* data.## DialogueNodeData
Dialogue Node Data is holding Dialogue Node's Dialogue Text and node's position data for graph.## ExposedProperty data class
Exposed properties can hold **unique** property names and their non-unique values. You can set values via blackboard or set values at runtime with ```string.Replace(propertyName,runtimeValue);```