Installation:

  • Download and import the package.
  • Open the Nodus Editor.
  • Press the compile button within the Editor, and Choose to "Compile Entire Assembly".
  • This creates everything you need to use the editor.

Compiling:

  • If you have changed your version of Unity, you will need to select "Compile Entire Assembly". (This is the longest, and only ever needs done once, unless you change the "Allowed Unity Namepsaces").
  • If you have made changes to your code that could affect what appears in Nodus, and Auto Compile is disabled, then press "Compile Custom and 3rd Party".
    • This also includes importing/changing plugins that you are using.
  • For Specific Devices (Primarily iOS), Just-in-time compilation isn't allowed, so a library of wrappers of generics and delegates has to be created, but it takes minimal time or space.

Adding Functionality:

  • Under Nodus/Editor/User Info/ you will find the asset "NCompilation"
  • This has 4 sections
    • "Allowed Unity Namespaces" are where you can add features from Unity itself
    • "Allowed API Namespaces" are where you add the functionality of DLLs/plugins/3rd Party Systems
    • "Allowed Type Namespaces" are where you add functionality that you require from .NET such as "System.Collections.Generic"
    • "User-Only-Code Namespaces" are where you add your own custom code, without any inheritance, so delcared code only
    • "Ignore Types" are where you add types that you do no want, or are platform specific and could cause issues.

Settings:

  • Under Nodus/Editor/User Info/ you will find the asset "NInfo_Sav"
    • This is where your preferences are held, such as the layout of Nodus, favourites, etc., and deleting this resets everything.

Using Nodus:

  • As with C#, you will want to choose an event that will be called, such as "On Update", and tie in functions to it.
    • A full video tutorial is included, as well as a demo scene to see how it functions.
    • When using Nodus, if you want to use events on the object with the Graph, then in the Hierarchy, it's "Nodus/Events" and anything marked with "Graph".
    • If you want to target the events on another Monobehaviour, then in the Hierarchy, it's the options under "Events". On the target object, add "Event Handler", and set that as the Event's target.
  • You can only have a master graph, and then a sub-graph.
    • Any further and Unity's serialisation cap cuts in and stops saving data.
  • You can create a subgraph by right clicking with nothing selected, and choose "Make Sub Graph".
    • Any time you edit the name, or variables of a subgraph, the outside may become disconnected.
    • You can save subgraphs to file, and can also load them into your graph by dragging and dropping from your hierarchy.

 

Code base

NObject

- Place this attribute on any class or struct where you want all Methods and Events to be added

bool

Hidden

Place this attribute on any class or struct where you want all Methods and Events to be added

NConstructor

- Place this attribute on a constructor you wish to show within the editor

bool

Hidden

Place this attribute on any class or struct where you want all Methods and Events to be added

NEvent

- Place this attribute on an event you wish to show within the editor

bool

Hidden

Place this attribute on any class or struct where you want all Methods and Events to be added

string

Category

Separated using slashes, this defines where in the hierarchy this appears

string

DisplayName

This is the name displayed within the editor

string

Summary

This is the quick summary show in the editor

string[]

HidePins

An array of which pins should be hidden

bool

IsGraphEvent

Whether or not this event should use the parent graph as its target

bool

IsGUI

Whether or not this event should only be used during a GUI call

NFunction

- Place this attribute on a function you wish to show within the editor

bool

Hidden

Place this attribute on any class or struct where you want all Methods and Events to be added

string

Category

Separated using slashes, this defines where in the hierarchy this appears

string

DisplayName

This is the name displayed within the editor

string

Summary

This is the quick summary show in the editor

string[]

HidePins

An array of which pins should be hidden

string[]

ExecutePathNames

For functions that return an integer, you can define the output path by setting an array of strings here

bool

IsGUI

Whether or not this function should only be used during a GUI call

MathType

MathType

This defines the type of math/comparator operation the node does

string

BGDisplay

Only relevant if MathType is set to 'N_Bool' and it is: "Equals", "And", "Or", "Not"
Or if the MathType is set to 'N_Misc' and it is: "Equals", "Add", "''", "Array"

Math Type

- This is the possible states a node's math setting can be in.

N_None

N_Add

N_Subtract

N_Multiply

N_Divide

N_Modulus

N_Equals

N_Misc

N_Bool

N_Other

Do nothing

Display '+'

Display '-'

Display 'X'

Display '/'

Display '%'

Display '=='

See NFUNCTION.MathType

See NFUNCTION.MathType

Used for Misc functions such as Math comparators, such as >, <, etc. Also used for math functions such as "Abs"