Node Methods - McManning/BlueGraph GitHub Wiki

Event Methods

OnRequestValue

Nodes that are connected to an output port will execute that node's OnRequestValue. This method contains the bulk of your implementation logic for your node.

Use GetInputValue() to retrieve the value of one of your input ports from its connection(s). If there are no connections to that input it will fallback to the value in the second argument - which is typically the associated field that we expose in the editor.

float a = GetInputValue("a", this.a);

If you have multiple output ports, you will want to conditionally run logic per port:

public override object OnRequestValue(Port port)
{
    switch (port.Name) {
        case "b":
            // Logic for output port a
        case "a":
            // Logic for output port b
    }
}

OnEnable

Called when the Graph's ScriptableObject gets the OnEnable message or when the node is added to the graph via Graph.AddNode().

OnDisable

Called when the Graph's ScriptableObject gets the OnDisable message or when the node is removed from the graph via Graph.RemoveNode()

OnValidate

Called in the editor when the node or graph is revalidated. This can happen in the following scenarios:

  • The value is changed in the editor for one of the Node's [Input] fields
  • ScriptableObject.OnValidate is executed on the graph - each node will also get an OnValidate message after the Graph executes OnGraphValidate
  • An edge is added or removed from one of the ports

OnAddedToGraph

Called after this node is added to the graph via Graph.AddNode and before Node.OnEnable is called.

OnRemovedFromGraph

Called before this node is removed from a graph via Graph.RemoveNode and after Node.OnDisable is called.

OnError

Called when the Node.Error property value changes.