Giter Site home page Giter Site logo

etiennevn / node_editor_framework Goto Github PK

View Code? Open in Web Editor NEW

This project forked from seneral/node_editor_framework

0.0 0.0 0.0 5.15 MB

A flexible and modular Node Editor Framework for creating node based displays and editors in Unity

Home Page: https://nodeeditor.seneral.dev

License: MIT License

C# 99.80% ShaderLab 0.20%

node_editor_framework's Introduction

Node Editor Framework for Unity

A flexible and modular Node Editor Framework for creating node based displays and editors


Node Editor Image

WebGL Demo - Forum Thread - Documentation

Features

  • Extensible interface
  • Extensive controls including zooming/panning
  • Runtime-fetching of custom nodes, connections, canvas, traversal routines and controls
  • Full Save- and cache system (Scene, Asset and XML)
  • Runtime support (see WebGL demo)
  • Full Undo support using UndoPro (editor only)

Installation

Distribution Version

The LTS distribution version is just the base framework, intended to be installed as a package using the Unity Package Manager and used by different tools simultaneously, without any framework modifications by individual tools. With the options the framework gives, this still allows custom windows for each tool with custom look and behaviour. This is recommended for smaller tools that are released as a UPM package or through github with installation instructions. However it prevents you from using the Node Editor at runtime (see RTNodeEditor).
For detailed installation instructions see the latest LTS release.

  1. Install Undo Pro:
    UPM/Add from git (latest): https://github.com/Seneral/UndoPro.git#release-pkg
  2. Install Node Editor Framework:
    UPM/Add from git (latest): https://github.com/Seneral/Node_Editor_Framework.git#release-pkg

Development Version

This is intended to be used in tools aiming to modify the framework core and embed the framework in their distribution. This requires them to modify the namespace and make sure it does not conflict with other tools. This is the version to choose for Asset Store releases, as they cannot specify a UPM package as dependency.
For the development version, take the latest release from develop.

Examples

Examples can be found in the Examples subfolder or packaged in the latest LTS release.
In addition to those there are several other examples that are more involved, found as branches in this repo.

  1. The Texture Composer, as seen in the title screen, is a very simple setup of a few texture nodes built upon the default calculation canvas in the framework. Start here to get a basic idea on how to create simple extensions of the framework with custom functionality.
  2. A great, but complex example is the Dialogue System, developed and maintained by ChicK00o and atrblizzard. Making excellent use of the framework's modularity to extend the frameworks capability and behaviour to get a basic dialogue system, including the editing and runtime execution (with an example scene), up and running. Check it out if you want to get an idea of a bigger setup expanding on the Node Editor Framework with custom rules.
  3. Another set of nodes is the 'Expression Node' example. These are a bit different as they use reflection to inject any type of variable into the framework, to convert or execute code on. It's main purpose is to show complex modifications of the Node Knobs and general extended use of the framework.
  4. A small example of extending the editor controls can be seen in the included Node Group. It contains custom controls to handle without modifying any framework code.

Contributing

If you want to contribute to this framework or have improved this framework internally to suit your needs better, please consider creating a Pull Request with your changes when they could help the framework become better. The issues section serves as a feature discussion forum and I encourage you to check it out to get an idea of the future plans for the framework. You can also PM the main developer Seneral directly if you wish so.

Credits

The project was started as a part of the thread "Simple Node Editor" in may 2015 by Seneral. Big thanks to Baste Nesse Buanes who helped to set up this repository initially, without his help the framework could not have expanded to the point where it is now! Also, thanks to Vexe, who has greatly helped with the reflection related stuff which is used for the zooming functionality of the editor. And of course thanks to everyone contributing or simply motivating the developers by sharing their work with the Node Editor Framework! You can find the full list of contributors here.

Licensing

The license used is the MIT License - see license.md

node_editor_framework's People

Contributors

atheoscode avatar atrblizzard avatar barsonax avatar baste-raingames avatar beddowdm01 avatar bergtrol avatar chick00o avatar evandaley avatar gil-ferraz avatar groud avatar hyunkell avatar joen-unlogick avatar joshashby avatar keerpich avatar lloydhooson avatar nicoell avatar nopey avatar pmhpereira avatar ritave avatar sarmiee avatar scriptgeek avatar seneral avatar unagihuman avatar willnode avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.