Troubleshooting
Common issues
I can't see my node in the CreateNode context menu.
The nodes subdivide into categories. They appear under the assembly name category of your project. If you can't find your node, try to search for the node using the text field in the context menu.
I can't connect my port to another port on another node.
PortType has to be compatible for a connection to exist (isAssignableFrom).
If two different PortTypes exist (PortType\<float> —> PortType\<double>), a PortConverter has to exist for the connection to be accepted by SystemGraph.
For numeric types, there are currently built-in converters. The port direction is also important for connections. An input can't connect to another input, and an output to another output. You can only connect input to either output or bidirectional ports.
Parameters can't connect to another parameter in the graph. To be able to connect parameters together, you have to "buffer" your port through a node with compatible ports.
Can I use a reference to other node ports inside my node?
No, this isn't a good design pattern. Instead, expose the information as ports so that other nodes can consume them, with a proper interface/contract definition.
Is it possible to know if an output port has any connections? For example, a node that can produce a NativeArray
Yes, PortType has a property called Connected, which indicates if an edge is connected to this port.
What's the difference between a property node and regular node.
Visually, the property node displays as a capsule (node with only one port).
The property node acts as a link to the inspector property when you select a System Graph Component in the hierarchy. The property can take input from outside the graph; it can also output data outside the graph.
Is it possible to lasso a bunch of nodes and turn them into a sub graph?
This is not currently supported. Stay tuned for future releases.
How do I set the clock frequency for a synchronous node?
A synchronous node has a dedicated row in the scheduler editor at the bottom of the Editor view:
- Double-click on the name of your node to open the edit mode and menu bar.
- In the menu, set the frequency and the parameters of the waveform.
- After entering your settings, select the Exit icon.
Does SystemGraph have a node with a synchronous clock whose sole purpose is to generate a tick?
No. The user has to create this feature manually. The user can add a port to his node, and write to the port in the OnTick callback. If a registered change event handler is set on that port, the receiving node receives the callback every time a write is done, emulating this behavior.
Is it possible for a Node to access its connected neighbor nodes? if two nodes A and B are connected through a port, [A] -> [B], can node B have access to the A node object itself?
This isn't suggested, as it bypasses the interface contract between nodes. Nodes should be used in isolation to be reusable by other systems.
Is it possible for a child Node class to disable/hide some of the ports inherited from its parent class?
No, this isn't supported.
I updated to the latest version and now I have weird issues and bugs.
Always delete your temporary project folders (Temp, obj, library) after upgrading. Unity might not rebuild the SystemGraph framework. This might cause the project to work with a mix of new and old objects.