/Unity-Visual-Graph-Editor

Visual Graph Editor based on Unity's Experimental GraphView

Primary LanguageC#MIT LicenseMIT

Node Based Visual Graph System for Unity

This graph editor allows you to skip the editor work and create a Node Graph that is customizable. The tool that uses Unity's Experimental GraphView.

Visul Graph Features

  • Extensible
  • Scriptable Assets that can be used at rumtime through custom behaviour
  • Minimap.
  • Search window.
  • Blackboard that supports most types.

Usage

  • VisualGraph generates a starting point for you to create your custom graph
  • To start create a script that extends VisualGraphNode. This is either the basic node for your graph or a base node your graph will use.
    • You can add the following attributes: [NodeName()] [NodePortAggregate()] [PortCapacity()] [CustomNodeStyle()]
    • You can create more node scripts that extend your base node
  • Next create a script that extends VisualGraph, add [CreateAssetMenu] and [DefaultNodeType(typeof(YOURBASENODE_YOU_JUST_CREATED))]
  • Generate your graph
  • It is recommended to extend the VisualGraphMonoBehaviour to create a MonoBehaviour to use in your game
    • The VisualGraphMonoBehaviour will create an internal copy of the graph so it does not change the actual ScriptableObject data (at runtime and in the editor)
  • Once you have created your VisualGraphMonoBehaviour script add this to a game object. Access the graph by using InternalGraph
  • From there you can navigate your graph in your node scripts.
  • You can also add Blackboard properties to your graph, if you have added the graph to you MonoBehaviour it will make a copy of the properties
    • Properties can be overriden and set which are used at runtime
    • There are refresh issues with the properties in the inspector (working on this)

Examples

Basic Example Graph

FSM Example

Bugs

  • Inspector does not refresh when blackboard properties change (new, delete, or update)