Singularity/Library/PackageCache/com.unity.visualscripting@1.../Documentation~/vs-create-custom-node-empty.md
2024-05-06 11:45:45 -07:00

51 lines
1.9 KiB
Markdown

# Create a new simple Custom C# node
You can create a Custom C# node to run your own custom logic in a Script Graph. For more information on Custom C# nodes, see [Custom C# nodes](vs-create-custom-node.md).
To create a new simple Custom C# node:
1. [!include[open-project-window](./snippets/vs-open-project-window.md)]
2. Right-click a folder in the Project window's folder list, or anywhere in the Project window's preview pane, and go to **Create** > **C# Script**.
3. Enter a name, such as `MyNode`, for the new script file.
1. Press Enter.
4. [!include[open-new-external-code](./snippets/vs-open-new-external-code.md)]
5. In your external editor, copy and paste the following code into your C# script:
```C#
using Unity.VisualScripting;
using UnityEngine;
public class MyNode : Unit
{
protected override void Definition() //The method to set what our node will be doing.
{
}
}
```
6. [!include[save-script](./snippets/vs-save-script.md)]
1. [!include[return-unity](./snippets/vs-return-unity.md)]
7. [!include[regen-node-library](./snippets/vs-regen-node-library.md)]
> [!NOTE]
> If you don't regenerate your Node Library, the node won't appear in Visual Scripting's fuzzy finder.
8. [Open a Script Graph](vs-open-graph-edit.md) where you want to add your new node.
9. [!include[open-fuzzy-finder](./snippets/vs-open-fuzzy-finder.md)]
1. The node appears as `My Node` at the end of the fuzzy finder list. Select the node to add it to your graph.
![An image of the Graph window. The fuzzy finder is open and displays the Custom C# node, My Node, at the end of the list of all available nodes. The node has also been added to the Script Graph, but has no ports.](images/vs-my-node-custom-node-graph-editor.png)
## Next steps
After you create the basic start to a node and add it to Visual Scripting's fuzzy finder, [add ports](vs-create-custom-node-add-ports.md) so your node can send and receive data.