Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity Node Editor Base

Basic editor extension functionality to get a node editor up and running. (Click on image to see video preview)

Main Features

  • Editor view with panning, zooming, and grid background
  • Save System using Scriptable Objects
  • Customizable GUI
  • Create, delete, drag nodes
  • Create, change, delete connections between nodes
  • Undo/Redo system
  • Action binding system (bind an action to a key input, context menu, etc..)
  • Reactive nodes. Output nodes are updated automatically if a change occurs.
  • More to come...!

Editor Preview

Custom Node Rendering. This is a LibNoise port (WIP). Click on image to see a video preview. Libnoise Port Sample

Custom node class example

public class PerlinNode : EditorNode
{
    private Perlin _noise = new Perlin();

    public PerlinNode()
    {
        name = "Perlin";

        var noiseIn = AddInput();
        noiseIn.name = "Input";

        var mask = AddInput();
        mask.name = "Mask";

        var noiseOut = AddOutput();
        noiseOut.name = "Output";
        noiseOut.getValue = () => { return _noise; };

        FitKnobs();

        bodyRect.height += 95f;
        bodyRect.width = 150f;
    }

    public override void OnBodyGUI()
    {
        EditorGUI.BeginChangeCheck();

        _noise.Seed = EditorGUILayout.IntField("Seed", _noise.Seed);
        _noise.OctaveCount = EditorGUILayout.IntField("Octaves", _noise.OctaveCount);
        _noise.Persistence = EditorGUILayout.DoubleField("Persistence", _noise.Persistence);
        _noise.Frequency = EditorGUILayout.DoubleField("Frequency", _noise.Frequency);
        _noise.Lacunarity = EditorGUILayout.DoubleField("Lacunarity", _noise.Lacunarity);

        if (EditorGUI.EndChangeCheck()) {
            // ... do stuff...
        }
    }
    

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

Trello Board to view project status.

About

Basic editor extension functionality to get a node editor up and running.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages