Skip to main content

IO Nodes (Manually)

This guide will walk you through creating IO nodes in Jungle manually. Let's get started!


Step 1: Create a New C# Script

First, create a new C# script in your Unity project.


Step 2: Inherit from IONode<T>

Next, make your new class inherit from the IONode<T> class. This will form the foundation of your IO node.

using Jungle;

// ↓↓↓↓↓↓
public class MyIONode : IONode<...>
{

}

Step 3: Set the Input Port Type

Set the accepted input port type in the angle brackets. For example, IONode<int>.

using Jungle;

// ↓↓↓↓↓↓↓↓↓↓
public class MyIONode : IONode<INPUT_TYPE>
{

}

Step 4: Implement OnStart and OnUpdate

Now, you need to implement the OnStart and OnUpdate methods. Ensure the OnStart method includes the input parameter.

using Jungle;

public class MyIONode : IONode<INPUT_TYPE>
{
// ↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓
protected override void OnStart(INPUT_TYPE inputValue)
{

}

// ↓↓↓↓↓↓↓↓
protected override void OnUpdate()
{

}
}

Step 5: Add the IONode Attribute

Add the IONode attribute to your class. This defines the input and output ports.

tip

If you don't want an output port, set the OutputPortName and OutputPortType properties to null.
(OutputPortName = null and OutputPortType = null)

using Jungle;

// ↓↓↓↓↓↓↓↓↓
[IONode(
InputPortName = "My Input",
OutputPortName = "My Output",
OutputPortType = typeof(OUTPUT_TYPE)
)]
public class MyIONode : IONode<INPUT_TYPE>
{
protected override void OnStart(INPUT_TYPE inputValue)
{

}

protected override void OnUpdate()
{

}
}

Step 6: Add the NodeProperties Attribute

Finally, add the NodeProperties attribute to your class. This defines additional properties such as the title, description, and category of your node.

using Jungle;

// ↓↓↓↓↓↓↓↓↓↓↓↓
[NodeProperties(
Title = "My IO Node",
Description = "This is an IO node.",
Category = "My Nodes/IO",
Color = Green
)]
[IONode(
InputPortName = "My Input",
OutputPortName = "My Output",
OutputPortType = typeof(OUTPUT_TYPE)
)]
public class MyIONode : IONode<INPUT_TYPE>
{
protected override void OnStart(INPUT_TYPE inputValue)
{

}

protected override void OnUpdate()
{

}
}

With these steps, you've created a basic IO node in Jungle. Feel free to customize the input and output types and the properties to suit your needs!