Skip to content
guntrumm edited this page Apr 18, 2023 · 35 revisions

UnityVersion Version GitHub last commit GitHub GitHub issues

image NewGraph is a data-oriented node graph solution for Unity powered by UIToolkit (UIElements). This is based on the idea to visualize complex data structures as graph networks without having to modify already established data classes, except adding [Node], [Port], [PortList] and [SerializeReference] attributes to all classes that should show in the Graph View.

This is planned to receive long term support as it is an integral part of our internal suite of tools at Gentlymad Studios.

Outline 🏠

Changelog πŸ“’

See the Changelog for current updates!

Requirements 🌡

  1. GraphViewBase
  2. OdinSerializer (Original OdinSerializer repository: https://github.com/TeamSirenix/odin-serializer)
  3. This project requires UnityVersion or later as the Unity version.

Features πŸ’

  • WYSIWYG. A port connecting to a node in the graph is a real reference to the object in your graph .asset
  • Good performance even with many nodes as this is built upon the new retained UIToolkit UI system.
  • create visual data oriented networks based on your custom [Serializable] data classes simply by adding attributes.
  • Fully serialized dynamic lists of ports with the [PortList] attribute.
  • Customize data visualization with [GraphDisplay]: Display a field inside the graph, side inspector or both views.
  • Full support of Unity's native Undo/Redo stack.
  • Support for Utility Nodes that can be created to help organize your specific graph business.
  • Copy & Paste even across graphs.
  • No child ScriptableObject mayhem! A graph asset will hold all your data in one single scriptable object.
  • Cyclic references and complex reference chains are natively supported with the use of [SerializeReference] attribute.
  • No reliance on the now deprecated Experimental.GraphView. Everything was written from scratch or is based on maintainable code.
  • Keyboard shortcuts, a searchable context menu, default UtilityNodes like CommentNode, GroupCommentNode, a extensively commented code base and more...