playtest-unity/playtest/Library/PackageCache/com.unity.visualscripting@1.../Documentation~/vs-refactor-add-attribute.md

2.5 KiB

Add the RenamedFrom attribute to a C# script

To use nodes generated from a custom C# script in a project after you rename a member, class, struct, type, or enum, add the [RenamedFrom] attribute to the relevant API element in the script file. For more information on the [RenamedFrom] attribute, see Refactor a C# script with Visual Scripting.

To add the attribute to a C# script:

  1. [!include[open-project-window](./snippets/vs-open-project-window.md)]

  2. In the Project window, double-click the C# script file you want to refactor. Unity opens the file in the program you specified in your preferences, under External Script Editor.

    NOTE

    For more information on script editors in Unity, see Integrated development environment (IDE) support in the Unity User Manual.

  3. In your external editor, do the following:

    1. Add the [RenamedFrom] attribute above the definition of the part of the script you want to rename.

    2. Add the element's old name as a string to the [RenamedFrom] attribute, as its parameter. For example:

    3. 
      using UnityEngine; 
      using Unity.VisualScripting; 
      

      [RenamedFrom("Character")] public class Player : MonoBehaviour { [RenamedFrom("InflictDamage")] public void TakeDamage(int damage) { //... } }

  4. [!include[save-script](./snippets/vs-save-script.md)]

  5. [!include[return-unity](./snippets/vs-return-unity.md)]

  6. [!include[regen-node-library](./snippets/vs-regen-node-library.md)]

[!NOTE] If you change the namespace or namespaces used in your script, you must include the old namespace or namespaces to use the [RenamedFrom] attribute.

Next steps

Unity recommends that you leave the attribute in the script file, even after a successful recompile. Nodes that use your C# script no longer have errors related to a missing member, class, struct, type, or enum.

Additional resources