Skip to main content
Overview > Inworld Node Asset Class: InworldNodeAsset | Inherits from: ScriptableObject Base ScriptableObject that represents a node within graph workflows in the Inworld framework. This asset can be created through Unity’s Create menu and used to define processing nodes in conversation flows. Used for implementing various AI processing operations, data transformations, and workflow logic in conversation systems. Documentation for other node types will only mention how their underlying runtime implementation works, as they mostly only implement methods from this base class. The built-in nodes that involve calling the C++ library inherit from this class. The SubGraphNode which can hold a reference to a graph asset also inherits from this class. InworldNodeAsset Unity Inspector

Properties

Methods

Reference

Runtime

Gets or sets the runtime node instance. Provides access to the active processing logic during execution.

Returns

Type: InworldNode

IsValid

Gets whether this node has been successfully validated and is ready for execution. Indicates the current state of node initialization and configuration.

Returns

Type: bool

NodeName

Gets or sets the display name of this node. Provides the identifier used for debugging and graph visualization.

Returns

Type: string

NodeTypeName

Gets the type name of this node. Returns the default node type, can be overridden in derived classes.

Returns

Type: string

BackgroundColor

Gets or sets the background color for this node in the graph editor. Used for visual representation and differentiation.

Returns

Type: Color

EditorPosition

Gets or sets the position displayed on the graph editor. Stores the visual layout coordinates for the node.

Returns

Type: Vector2

IsLeaf

Gets whether this node is a leaf node (has no children). Indicates if this node is an endpoint in the graph flow.

Returns

Type: bool

Parents

Gets the list of parent nodes that provide input to this node. Provides access to the incoming connections in the graph flow.

Returns

Type: List<InworldNodeAsset>

Children

Gets the list of child nodes that receive output from this node. Provides access to the outgoing connections in the graph flow.

Returns

Type: List<InworldNodeAsset>

Edges

Gets the dictionary mapping child nodes to their connecting edges. Provides access to the edge relationships for data flow and condition checking.

Returns

Type: Dictionary<InworldNodeAsset, InworldEdgeAsset>

ComponentID

Gets the component ID for this node. Returns the component ID if available, otherwise returns the node name.

Returns

Type: string

ComponentData

Gets the component data structure for this node. Creates a ComponentData object with the current node name and type.

Returns

Type: ComponentData

CreationConfigData

Gets the creation configuration data for this node. Virtual property that should be implemented in derived classes.

Returns

Type: ConfigData

ExecutionConfigData

Gets the execution configuration data for this node. Virtual property that should be implemented in derived classes.

Returns

Type: ConfigData

GetEdge

Retrieves the edge asset connecting this node to the specified child node.
InworldEdgeAsset GetEdge(InworldNodeAsset childNode)

Parameters

ParameterTypeDescription
childNodeInworldNodeAssetThe child node to find the connecting edge for

Returns

Type: InworldEdgeAsset - The edge asset connecting to the child node, or null if no connection exists

GetNodeCreationConfig

Virtual method for providing node creation configuration. Override this method in derived classes to specify node-specific configuration.

Returns

Type: NodeCreationConfig - The configuration object for creating this node

GetNodeExecutionConfig

Virtual method for providing node execution configuration. Override this method in derived classes to specify node-specific execution settings.

Returns

Type: NodeExecutionConfig - The configuration object for executing this node

CreateRuntime

Virtual method for creating the runtime representation of this node. Override this method in derived classes to implement node-specific runtime creation logic.
bool CreateRuntime(InworldGraphAsset graphAsset)

Parameters

ParameterTypeDescription
graphAssetInworldGraphAssetThe graph asset that will contain this node

Returns

Type: bool - True if runtime creation succeeded; otherwise, false

RegisterJson

Virtual method for registering this node with JSON-based graph execution. Override this method in derived classes to implement JSON registration logic.
bool RegisterJson(InworldGraphAsset graphAsset)

Parameters

ParameterTypeDescription
graphAssetInworldGraphAssetThe graph asset for JSON registration

Returns

Type: bool - True if registration succeeded; otherwise, false

Serialized Fields

The following fields are configurable in the Unity Inspector:
  • m_Component (InworldComponentAsset) - The component asset associated with this node
  • m_NodeName (string) - The display name for this node (default: “New Node”)
  • m_CreationConfigAsset (CreationConfigAsset) - Creation configuration asset (hidden in inspector)
  • m_InputTypes (List<string>) - Accepted input data types (hidden in inspector)
  • m_OutputType (string) - Output data type produced by this node (hidden in inspector)
  • m_BackgroundColor (Color) - Background color for graph editor (hidden in inspector)
  • m_EditorPosition (Vector2) - Position in graph editor (hidden in inspector)
  • m_Graph (InworldGraphAsset) - The graph asset that contains this node
  • m_ParentNodes (List<InworldNodeAsset>) - Parent nodes providing input
  • m_ChildrenNodes (List<InworldNodeAsset>) - Child nodes receiving output
  • m_Edges (Dictionary<InworldNodeAsset, InworldEdgeAsset>) - Edge relationships