All Projects → Siccity → Xnode

Siccity / Xnode

Licence: mit
Unity Node Editor: Lets you view and edit node graphs inside Unity

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Xnode

Egameplay
一个基于Entity-Component模式的灵活、通用的战斗(技能)框架,配置可选使用ScriptableObject或是Excel表格
Stars: ✭ 239 (-88.49%)
Mutual labels:  framework, unity, editor
Veranda
A graph editor framework for Unity
Stars: ✭ 180 (-91.33%)
Mutual labels:  graph, framework, unity
Bdframework.core
[中]Simple! Easy! Powerful Unity3d game workflow! Unity3d framework:c# hotfix(ILRuntime)、asset manager、ui workflow、network debug... and so on
Stars: ✭ 1,196 (-42.42%)
Mutual labels:  framework, unity
Virtualhome
API to run VirtualHome, a Multi-Agent Household Simulator
Stars: ✭ 80 (-96.15%)
Mutual labels:  graph, unity
Node editor framework
A flexible and modular Node Editor Framework for creating node based displays and editors in Unity
Stars: ✭ 1,751 (-15.7%)
Mutual labels:  unity, editor
Unity Core Project
Core Framework for Unity
Stars: ✭ 42 (-97.98%)
Mutual labels:  framework, unity
Extosc
extOSC is a tool dedicated to simplify creation of applications in Unity with OSC protocol usage.
Stars: ✭ 69 (-96.68%)
Mutual labels:  framework, unity
Unity Experiment Framework
UXF - Framework for creating human behaviour experiments in Unity
Stars: ✭ 81 (-96.1%)
Mutual labels:  framework, unity
Unitycopylightingsettings
Unity editor extension to copy&paste lighting settings from one scene to another.
Stars: ✭ 25 (-98.8%)
Mutual labels:  unity, editor
Undopro
UndoPro is a command-based undo system integrated into Unity's default system. This allows devs to use actions for their undo/redo operations without forcing the user into a new undo-workflow!
Stars: ✭ 107 (-94.85%)
Mutual labels:  unity, editor
Cloudcmd
✨☁️📁✨ Cloud Commander file manager for the web with console and editor.
Stars: ✭ 1,332 (-35.87%)
Mutual labels:  framework, editor
Iframework
Simple Unity Framework
Stars: ✭ 110 (-94.7%)
Mutual labels:  framework, unity
Bepinex
Unity / XNA game patcher and plugin framework
Stars: ✭ 1,001 (-51.81%)
Mutual labels:  framework, unity
Unity File Extension
Shows file extension in 1 column project window.
Stars: ✭ 20 (-99.04%)
Mutual labels:  unity, editor
Vue Dataflow Editor
Vue 2 dataflow graph editor
Stars: ✭ 73 (-96.49%)
Mutual labels:  graph, editor
Leaderboardx
A tool for building graphs quickly
Stars: ✭ 13 (-99.37%)
Mutual labels:  graph, editor
Openmod
OpenMod .NET Plugin Framework
Stars: ✭ 81 (-96.1%)
Mutual labels:  framework, unity
O2
2D Game Engine with visual WYSIWYG editor
Stars: ✭ 121 (-94.17%)
Mutual labels:  framework, editor
The Graph
SVG custom elements for FBP graph editing and visualization. Used in noflo/noflo-ui
Stars: ✭ 896 (-56.86%)
Mutual labels:  graph, editor
Centrifuge
Cross-platform runtime mod loader and API for any Unity-based game. Supports Unity 5 and up!
Stars: ✭ 18 (-99.13%)
Mutual labels:  framework, unity

Discord GitHub issues GitHub license GitHub Wiki openupm

Downloads / Asset Store / Documentation

Support xNode on Ko-fi or Patreon

xNode

Thinking of developing a node-based plugin? Then this is for you. You can download it as an archive and unpack to a new unity project, or connect it as git submodule.

xNode is super userfriendly, intuitive and will help you reap the benefits of node graphs in no time. With a minimal footprint, it is ideal as a base for custom state machines, dialogue systems, decision makers etc.

Key features

  • Lightweight in runtime
  • Very little boilerplate code
  • Strong separation of editor and runtime code
  • No runtime reflection (unless you need to edit/build node graphs at runtime. In this case, all reflection is cached.)
  • Does not rely on any 3rd party plugins
  • Custom node inspector code is very similar to regular custom inspector code
  • Supported from Unity 5.3 and up

Wiki

Installation

Instructions

Installing with Unity Package Manager

Via Git URL (Requires Unity version 2018.3.0b7 or above)

To install this project as a Git dependency using the Unity Package Manager, add the following line to your project's manifest.json:

"com.github.siccity.xnode": "https://github.com/siccity/xNode.git"

You will need to have Git installed and available in your system's PATH.

If you are using Assembly Definitions in your project, you will need to add XNode and/or XNodeEditor as Assembly Definition References.

Via OpenUPM

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

openupm add com.github.siccity.xnode

Installing with git

Via Git Submodule

To add xNode as a submodule in your existing git project, run the following git command from your project root:

git submodule add [email protected]:Siccity/xNode.git Assets/Submodules/xNode

Installing 'the old way'

If no source control or package manager is available to you, you can simply copy/paste the source files into your assets folder.

Node example:

// public classes deriving from Node are registered as nodes for use within a graph
public class MathNode : Node {
    // Adding [Input] or [Output] is all you need to do to register a field as a valid port on your node 
    [Input] public float a;
    [Input] public float b;
    // The value of an output node field is not used for anything, but could be used for caching output results
    [Output] public float result;
    [Output] public float sum;

    // The value of 'mathType' will be displayed on the node in an editable format, similar to the inspector
    public MathType mathType = MathType.Add;
    public enum MathType { Add, Subtract, Multiply, Divide}
    
    // GetValue should be overridden to return a value for any specified output port
    public override object GetValue(NodePort port) {

        // Get new a and b values from input connections. Fallback to field values if input is not connected
        float a = GetInputValue<float>("a", this.a);
        float b = GetInputValue<float>("b", this.b);

        // After you've gotten your input values, you can perform your calculations and return a value
        if (port.fieldName == "result")
            switch(mathType) {
                case MathType.Add: default: return a + b;
                case MathType.Subtract: return a - b;
                case MathType.Multiply: return a * b;
                case MathType.Divide: return a / b;
            }
        else if (port.fieldName == "sum") return a + b;
        else return 0f;
    }
}

Plugins

Plugins are repositories that add functionality to xNode

Community

Join the Discord server to leave feedback or get support. Feel free to also leave suggestions/requests in the issues page.

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].