All Projects → alelievr → Nodegraphprocessor

alelievr / Nodegraphprocessor

Licence: mit
Node graph editor framework focused on data processing using Unity UIElements and C# 4.6

Projects that are alternatives of or similar to Nodegraphprocessor

Veranda
A graph editor framework for Unity
Stars: ✭ 180 (-72.52%)
Mutual labels:  graph, unity
Unity Serializabledictionary
Serializable dictionary class for Unity
Stars: ✭ 302 (-53.89%)
Mutual labels:  unity, unity-editor
Unity Editor Toolbox
Tools, custom attributes, drawers, hierarchy overlay, and other extensions for the Unity Editor.
Stars: ✭ 273 (-58.32%)
Mutual labels:  unity, unity-editor
Virtualhome
API to run VirtualHome, a Multi-Agent Household Simulator
Stars: ✭ 80 (-87.79%)
Mutual labels:  graph, unity
Easybuttons
Add buttons to your inspector in Unity super easily with this simple attribute
Stars: ✭ 410 (-37.4%)
Mutual labels:  unity, unity-editor
Xnode
Unity Node Editor: Lets you view and edit node graphs inside Unity
Stars: ✭ 2,077 (+217.1%)
Mutual labels:  graph, unity
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (-54.81%)
Mutual labels:  unity, unity-editor
Unity Bitmapfontimporter
An unity editor extension for bitmap font.
Stars: ✭ 139 (-78.78%)
Mutual labels:  unity, unity-editor
Graph Visualizer
Visualizer for your Playable graphs
Stars: ✭ 367 (-43.97%)
Mutual labels:  graph, unity
Texture maker
A texture maker tool for unity.
Stars: ✭ 358 (-45.34%)
Mutual labels:  unity, unity-editor
Unity Aseprite Importer
An aseprite-file importer for unity written in C#, built upon the experimental AssetImporter API
Stars: ✭ 177 (-72.98%)
Mutual labels:  unity, unity-editor
Unitydarkskin
Switcher of UI theme in Unity Editor (light -> dark) (.NET, WPF)
Stars: ✭ 466 (-28.85%)
Mutual labels:  unity, unity-editor
Unitypausemenu
This is an open source Unity pause menu created for the game New Horizons, and it's completely free because of how a pause menu is a core component of a game, while the unity asset store was lacking in such an asset (until this was released on the asset store).
Stars: ✭ 160 (-75.57%)
Mutual labels:  unity, unity-editor
Unity Easinglibraryvisualisation
Front end visualisation of 40 common easing equations.
Stars: ✭ 178 (-72.82%)
Mutual labels:  graph, unity
Uiwidgets
UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.
Stars: ✭ 1,901 (+190.23%)
Mutual labels:  unity, unity-editor
Unity Script Collection
A maintained collection of useful & free unity scripts / library's / plugins and extensions
Stars: ✭ 3,640 (+455.73%)
Mutual labels:  unity, unity-editor
Pb stl
STL import/export for Unity, supporting both ASCII and Binary.
Stars: ✭ 108 (-83.51%)
Mutual labels:  unity, unity-editor
Ma textureatlasser
Texture atlas creator for Unity
Stars: ✭ 116 (-82.29%)
Mutual labels:  unity, unity-editor
Unity Mulligan Renamer
Mulligan Renamer tool for the Unity Editor allows for quick and safe renaming of many assets and gameobjects at once
Stars: ✭ 315 (-51.91%)
Mutual labels:  unity, unity-editor
Actors.unity
🚀Actors is a framework empowering developers to make better games faster on Unity.
Stars: ✭ 437 (-33.28%)
Mutual labels:  unity, unity-editor

NodeGraphProcessor

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

Codacy Badge openupm

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;
    }
}

Unity Compatible versions

This project requires at least Unity 2020.2 with a scripting runtime version of 4.x in player settings.
The current Unity version used for the project is 2020.2.0f1, if you want to install NodeGraphProcessor in an older unity project, you can install it via Open UPM (minimum version: Unity 2019.3).

Installation

Install Manually

There are two ways to install this asset: you can use the Unity package manager or move the entire repo inside your Assets folder. To install using the package manager:

  • download this repo
  • inside the package manager click the '+' button at the bottom to add a package from disk
  • then select the package.json file located in Assets/NodeGraphProcessor
  • package is installed :)

Install via OpenUPM

The package is available on the openupm registry. It's recommended to install it via openupm-cli.

openupm add com.alelievr.node-graph-processor

Install via Git

Alternatively, you can use the git address feature in the package manager on the branch #upm, it only contains the package but it may be out of sync compared to master.

Note that you'll not have access to the examples provided in this repo because the package only include the core of NodeGraphProcessor.

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)

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

Mixture

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].