Library -Artifacts
2.5 KiB
Add logic to a Custom C# node
Note
To add logic to a node, you must create a Custom C# node and add ports. [!includevs-tasks-note-end]
After you create a Custom C# node and add ports, you can add logic to a node. Add logic to tell Visual Scripting what the node does with any data it receives from its ports.
To add logic to a node:
-
[!includeopen-project-window]
-
[!includeopen-existing-external-code]
-
In your external editor, add any logic for the node within the lambda expression that handles the assignment of the
inputTrigger
. For example, you can take the values of the twostring
input ports added in the previous example and concatenate them, as shown in the following code:using System; using Unity.VisualScripting; using UnityEngine; public class MyNode : Unit { [DoNotSerialize] public ControlInput inputTrigger; [DoNotSerialize] public ControlOutput outputTrigger; [DoNotSerialize] public ValueInput myValueA; [DoNotSerialize] public ValueInput myValueB; [DoNotSerialize] public ValueOutput result; private string resultValue; protected override void Definition() { //The lambda to execute our node action when the inputTrigger port is triggered. inputTrigger = ControlInput("inputTrigger", (flow) => { //Making the resultValue equal to the input value from myValueA concatenating it with myValueB. resultValue = flow.GetValue<string>(myValueA) + flow.GetValue<string>(myValueB) + "!!!"; return outputTrigger; }); outputTrigger = ControlOutput("outputTrigger"); myValueA = ValueInput<string>("myValueA", "Hello "); myValueB = ValueInput<string>("myValueB", String.Empty); result = ValueOutput<string>("result", (flow) => resultValue); } }
-
[!includesave-script]
-
[!includereturn-unity]
-
Do one of the following:
- [!includeopen-graph-w-node].
- [!includeff-add-node]
Next steps
After you add logic to a node, add relations to ensure that the node displays correctly in Visual Scripting.