| # Refactor a C# script with Visual Scripting |
|
|
| Visual Scripting creates nodes from methods, fields, and properties from C# script in your project. Visual Scripting creates these nodes after you [regenerate your Node Library](vs-configuration.md) and [add any relevant types to your Type Options](vs-add-remove-type-options.md). |
|
|
| For example, Visual Scripting created the following Take Damage node from a custom C# script that defines the `Player` class. |
|
|
|  |
|
|
| Visual Scripting generated the node with the following code, which creates a `Player` class with a `TakeDamage` member. |
|
|
| ``` C# |
| using UnityEngine; |
| |
| public class Player : MonoBehaviour |
| { |
| public void TakeDamage(int damage) |
| { |
| //... |
| } |
| } |
| ``` |
|
|
| > [!TIP] |
| > You can [create your own custom node](vs-create-custom-node.md) or [create a custom event](vs-custom-events.md) to customize the ports and information displayed on your nodes. |
|
|
| If you change the name of the `TakeDamage` member in the C# script, Visual Scripting displays an error in Script Graphs that use the Take Damage node. |
|
|
|  |
|
|
| To rename a member, type, class, struct, enum, or other API element that a Visual Scripting node uses in a project, add the `[RenamedFrom]` attribute to the relevant API element in the script file. To avoid issues with Unity's serialization, the `[RenamedFrom]` attribute tells Visual Scripting that an API or one of its elements has been renamed. |
|
|
| For more information on how to add the `[RenamedFrom]` attribute to a C# script, see [Add the RenamedFrom attribute to a C# script](vs-refactor-add-attribute.md). |
|
|
| ## Additional resources |
|
|
| - [Add the RenamedFrom attribute to a C# script](vs-refactor-add-attribute.md) |
| - [Configure project settings](vs-configuration.md) |
| - [Add or remove types from your Type Options](vs-add-remove-type-options.md) |
| - [Custom C# nodes](vs-create-custom-node.md) |
| - [Custom events](vs-custom-events.md) |
|
|