Branch Nodes (Manually)
This guide will walk you through creating branch 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 BranchNode
Next, make your new class inherit from the BranchNode class.
This will form the foundation of your branch node.
using Jungle;
//                          ↓↓↓↓↓↓↓↓↓↓
public class MyBranchNode : BranchNode<...>
{
}
Step 3: 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 MyBranchNode : BranchNode<INPUT_TYPE>
{
    //                      ↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓
    protected override void OnStart(INPUT_TYPE inputValue)
    {
    }
    //                      ↓↓↓↓↓↓↓↓
    protected override void OnUpdate()
    {
    }
}
Step 4: Add the BranchNode Attribute
Add the BranchNode attribute to your class.
This defines the input and output ports.
using Jungle;
// ↓↓↓↓↓↓↓↓
[BranchNode(
    InputPortName = "My Input",
    OutputPortNames = new []
    {
        "My Output 1",
        "My Output 2"
    },
    OutputPortTypes = new []
    {
        typeof(OUTPUT_TYPE),
        typeof(OUTPUT_TYPE)
    }
)]
public class MyBranchNode : BranchNode<INPUT_TYPE>
{
    protected override void OnStart(INPUT_TYPE inputValue)
    {
    }
    protected override void OnUpdate()
    {
    }
}
Step 5: 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 Branch Node",
    Description = "This is a Branch node.",
    Category = "My Nodes/Branch",
    Color = Green
)]
[BranchNode(
    InputPortName = "My Input",
    OutputPortNames = new []
    {
        "My Output 1",
        "My Output 2"
    },
    OutputPortTypes = new []
    {
        typeof(OUTPUT_TYPE),
        typeof(OUTPUT_TYPE)
    }
)]
public class MyBranchNode : BranchNode<INPUT_TYPE>
{
    protected override void OnStart(INPUT_TYPE inputValue)
    {
    }
    protected override void OnUpdate()
    {
    }
}
With these steps, you've created a basic branch node in Jungle. Feel free to customize the input and output types and the properties to suit your needs!