83 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# Add documentation to a Custom C# node
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can also add [Graph Inspector](vs-interface-overview.md#the-graph-inspector) documentation to a Custom C# node. Visual Scripting displays the documentation in the Graph Inspector when you select a node in a Script Graph. The documentation isn't required to use the node, but can help your users understand the purpose and usage of a node. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To add documentation to a node: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. [!include[vs-open-project-window](./snippets/vs-open-project-window.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    > [!NOTE]
							 | 
						||
| 
								 | 
							
								    > If you already have an **Editor** folder in your project, you can skip Steps 2-3. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								2. Right-click your **Assets** folder or select **Add** (+), then select **Folder**. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. Name the folder **Editor**. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								3. Do one of the following: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    - Right-click your **Editor** folder in the Project window's folder list. 
							 | 
						||
| 
								 | 
							
								    - Right-click anywhere in the Project window's preview pane with your **Editor** folder selected.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								4. [!include[vs-create-c-script](./snippets/vs-create-c-script-project.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								5. Enter a name, such as `MyNodeDescriptor` for the new script file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1.  Press Enter.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								6. [!include[vs-open-new-external-code](./snippets/vs-open-new-external-code.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								7. In your external editor, copy and paste the following code into the C# script: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ```C#
							 | 
						||
| 
								 | 
							
								    using System;
							 | 
						||
| 
								 | 
							
								    using Unity.VisualScripting;
							 | 
						||
| 
								 | 
							
								    using UnityEngine;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Descriptor(typeof(MyNode))]
							 | 
						||
| 
								 | 
							
								    public class MyNodeDescriptor : UnitDescriptor<MyNode>
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								    public MyNodeDescriptor(MyNode unit) : base(unit) {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected override void DefinedPort(IUnitPort port, UnitPortDescription description)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        base.DefinedPort(port, description);
							 | 
						||
| 
								 | 
							
								        switch (port.key)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            case "inputTrigger":
							 | 
						||
| 
								 | 
							
								                description.summary = "Trigger the concatenation of two strings, myValueA and myValueB, and return the result string on the Result port.";
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case "myValueA":
							 | 
						||
| 
								 | 
							
								                description.summary = "First string value.";
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case "myValueB":
							 | 
						||
| 
								 | 
							
								                description.summary = "Second string value.";
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case "outputTrigger":
							 | 
						||
| 
								 | 
							
								                description.summary = "Execute the next action in the Script Graph after concatenating myValueA and myValueB.";
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case "result":
							 | 
						||
| 
								 | 
							
								                description.summary = "The result string obtained from concatenating myValueA and myValueB.";
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    ```
							 | 
						||
| 
								 | 
							
								    You can modify the script to suit the specifics of your own node.<br/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								8. [!include[vs-save-script](./snippets/vs-save-script.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1. [!include[vs-return-unity](./snippets/vs-return-unity.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								9. Do one of the following: 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    - [!include[vs-open-graph-w-node](./snippets/custom-c-nodes/vs-open-graph-w-node.md)].
							 | 
						||
| 
								 | 
							
								    - [!include[vs-ff-add-node](./snippets/custom-c-nodes/vs-ff-add-node.md)]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								10. Select the node and open the [Graph Inspector](vs-interface-overview.md#the-graph-inspector) to view your documentation. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Next steps 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								After you add documentation to a node, you can choose to further customize the node with [node class and port attributes](vs-create-custom-node-attributes-reference.md).
							 |