Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Assets NodEdit - an extensible, beginner-friendly node editor for Unity

Discussion in 'Works In Progress - Archive' started by Tom01098, Sep 19, 2018.

  1. Tom01098

    Tom01098

    Joined:
    Jun 8, 2015
    Posts:
    42
    Features
    • Simple GUI.
    • Write your own nodes using C# in almost the exact same way you normally would.
    • Support for all serializable types and arrays.
    • No runtime reflection, minimal reflection in edit mode.
    • Elegant error handling in both edit and play mode.
    • Ability to write your own renderers for custom types.
    • External API for interfacing with nodes from regular game code.
    • Support for prefabs.
    • Common Unity events such as Start and Update, as well as custom events.
    • Write comments in the GUI itself.

    Using the GUI
    Selecting a GameObject with a CommandHolder component attached will open the GUI. This displays commands as boxes with their fields underneath, and they can be dragged around. Buttons on top of the node can be used to link nodes together so that the first executes the second after finishing executing. Buttons along the right side of the node next to the fields are conditionals, which are triggered withing your own commands.

    Adding commands can be done by right clicking anywhere in the editor and selecting from the menu.


    Writing Custom Commands
    To write a command, there is a template available in the editor which is available through the Create menu. This will provide all of the boilerplate code needed.

    You can then fill in your fields and logic.


    Error Handling
    The editor automatically informs you when something is wrong in a way which does not block the rest of the editor. For example:

    For runtime errors, they can be handled within your code using 'handle.ThrowError'. This will gracefully exit from the command that is currently running and continue with execution without throwing a blocking error.

    I would write more but hopefully this gives a good idea of how the project works, also Unity doesn't allow more than 5 images :(. Any feedback is greatly appreciated!