Skip to content

Warwlock/NodeGraphProcessor

 
 

Repository files navigation

NodeGraphProcessor

This is forked version of original NodeGraphProcessor for my open source projects.

Installation

  • Go to Project Settings --> Package Manager
  • Under Scoped Registries create a new one.
  • Enter this:
    • Name: Warwlock
    • URL: https://registry.npmjs.com
    • Scope(s): com.warwlock

Compatibility

  • Unity Versions: Compatible with 2021.3 and above.

Original Description

Node graph editor framework focused on data processing using Unity UIElements, GraphView and C# 4.7

This node based solution provides a great C# API allowing you to implement conditional graphs, dependencies graphs, processing graphs and more.
image

Based on Unity's GraphView technology, NodeGraphProcessor is also very fast and works well with large graphs.
Performance

Simple and powerful C# node API to create new nodes and custom views.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GraphProcessor;
using System.Linq;

[System.Serializable, NodeMenuItem("Operations/Sub")] // Add the node in the node creation context menu
public class SubNode : BaseNode
{
    [Input(name = "A")]
    public float                inputA;
    [Input(name = "B")]
    public float                inputB;

    [Output(name = "Out")]
    public float				output;

    public override string		name => "Sub";

    // Called when the graph is process, process inputs and assign the result in output.
    protected override void Process()
    {
        output = inputA - inputB;
    }
}

Community

Join the NodeGraphProcessor Discord server!

Features

  • Node and Graph property serialization (as json)
  • Scriptable Object to store graph as a Unity asset.
  • Highly customizable and simple node and links API
  • Support multi-input into a container (multiple float into a list of float for example)
  • Graph processor which execute node's logic with a dependency order
  • Documented C# API to add new nodes / graphs
  • Exposed parameters that can be set per-asset to customize the graph processing from scripts or the inspector
  • Parameter set mode, you can now output data from thegraph using exposed parameters. Their values will be updated when the graph is processed
  • Search window to create new nodes
  • Colored groups
  • Node messages (small message with it's icon beside the node)
  • Stack Nodes
  • Relay nodes
  • Display additional settings in the inspector
  • Node creation menu on edge drop
  • Simplified edge connection compared to default GraphView (ShaderGraph and VFX Graph)
  • Multiple graph window workflow (copy/paste)
  • Vertical Ports
  • Sticky notes (requires Unity 2020.1)
  • Renamable nodes

More details are available in the Changelog

Documentation

API doc is available here: alelievr.github.io/NodeGraphProcessor

The user manual is hosted using Github Wiki.

Remaining to do

  • Investigate for ECS/Jobs integration
  • API to create the graph in C#
  • Subgraphs

For more details consult our Github Project page.

Projects made with NodeGraphProcessor

image

Want to be in the made with list? Send a message to the issue #14

Gallery

Minimap

Relay nodes

Node connection menu

Node creation menu

Graph Parameters

Groups

Node Settings

Node Messages

Conditional Processing (in Example)

Stacks

Relay Node Packing

Node Inspector

Improved Edge Connection

Multi-Window support

Field Drawers (Thanks @TeorikDeli!)

Sticky Notes (2020.1 or more required)

image

Vertical Ports

image

Drag And Drop Objects

CreateNodeFromObject

Renamable nodes

Just add this bit of code in your Node script to make it renamable in the UI.

        public override bool	isRenamable => true;

RenamableNode

About

Core node graph system that will be used by my systems.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%