• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by AlessioGrancini · Aug 06, 2020 at 02:03 AM · c#gameobjecteditorhierarchyrename

Is there anyway to batch renaming via Editor [not on Runtime] multiple game objects in the hierarchy ?

I feel like this is a common need for many. Is there any proper way to rename multiple objects according a linear sequence or anything close to that.

Let' say for example I drop 100 objects in my scene in a certain order in the hierarchy, how could I rename them as obj1-obj2-obj3 and so on...

Thank you

Comment
benrjw

People who like this

1 Show 0
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

5 Replies

  • Sort: 
avatar image

Answer by RaptorRush · Aug 10, 2020 at 09:11 PM

Yes, it’s possible using a custom editor window. Like this:


 using UnityEngine;
 using UnityEditor;
 
 public class RenameChildren : EditorWindow {
     private static readonly Vector2Int size = new Vector2Int(250, 100);
     private string childrenPrefix;
     private int startIndex;
     [MenuItem("GameObject/Rename children")] public static void ShowWindow() {
         EditorWindow window = GetWindow<RenameChildren>();
         window.minSize = size;
         window.maxSize = size;
     }
     private void OnGUI() {
         childrenPrefix = EditorGUILayout.TextField("Children prefix", childrenPrefix);
         startIndex = EditorGUILayout.IntField("Start index", startIndex);
         if (GUILayout.Button("Rename children")) {
             GameObject[] selectedObjects = Selection.gameObjects;
             for (int objectI = 0; objectI < selectedObjects.Length; objectI++) {
                 Transform selectedObjectT = selectedObjects[objectI].transform;
                 for (int childI = 0, i = startIndex; childI < selectedObjectT.childCount; childI++) selectedObjectT.GetChild(childI).name = $"{childrenPrefix}{i++}";
             }
         }
     }
 }



To use it:

  1. Save the script in your project.

  2. Go to GameObject/Rename children. alt text

  3. Select the parent of the objects to rename.

  4. Fill the fields and press the button. alt text


img-1.png (22.1 kB)
img-2.png (8.9 kB)
Comment
AmitSMG
Harry_Drew
cachetgames
LaurieAnnis
TWolfram
neon_driven
Pulsar5271
mohamedelhadjaoui759
Welanh
benrjw
jasonvoorhes5
Argoneon

People who like this

12 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image JonNightcrawler · Aug 08, 2022 at 11:14 AM 0
Share

I copied the code but for some reason it does not recognize the UnityEditor objects like WindowEditor.

avatar image

Answer by AmitSMG · May 17, 2021 at 09:58 AM

Thanks @RaptorRush this works perfectly and exactly what i was looking for :)

Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image

Answer by thedooptr · Jun 04, 2021 at 10:12 PM

I couldn't do it can you help me it gives an erroralt text


ekran-alıntısı.png (80.9 kB)
Comment

People who like this

0 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image leopessanha74 · Jun 10, 2021 at 04:55 PM 0
Share

Hi!

You named your class 'Mizaresimleri'

You are passing 'RenameChildren' as an argument to the 'GetWindow<>' command

There's no 'RenameChildren' class in your case.

The command should look as follows:

 GetWindow<Mizaresimleri>



avatar image

Answer by raiden · Feb 06, 2022 at 07:46 PM

I thought I would add a way to rename selected objects in case you are not naming the child objects.

 using UnityEditor;
 using UnityEngine;
  
 public class RenameSelected : EditorWindow
 {
     // public fields
     public GameObject[] objects;
     
     // private fields
     private static readonly Vector2Int size = new Vector2Int(250, 100);
     private string _gameObjectPrefix;
     private int _startIndex;
     private SerializedObject _serializedObject;
  
     [MenuItem("GameObject/Rename Selected")]
     public static void ShowWindow()
     {
         EditorWindow window = GetWindow<RenameSelected>();
         window.minSize = size;
         window.maxSize = size;
     }
  
     private void OnEnable()
     {
         ScriptableObject target = this;
         _serializedObject = new SerializedObject(target);
     }
  
     private void OnGUI()
     {
         _gameObjectPrefix = EditorGUILayout.TextField("Selected Prefix", _gameObjectPrefix);
         _startIndex = EditorGUILayout.IntField("Start Index", _startIndex);
         
         _serializedObject.Update();
  
         SerializedProperty serializedProperty = _serializedObject.FindProperty("objects");
  
         EditorGUILayout.PropertyField(serializedProperty, true);
  
         if (GUILayout.Button("Rename Objects"))
         {
             
             for (int objectI = 0, i = _startIndex; objectI < serializedProperty.arraySize; objectI++)
             {
                 serializedProperty.GetArrayElementAtIndex(objectI).objectReferenceValue.name = $"{_gameObjectPrefix}{i++}";
             }
         }
         
         _serializedObject.ApplyModifiedProperties();
     }
 }


This will create an array, in the editor window, simply select the order of the GameObjects, then set your prefix and start index, and hit the Rename Objects button.

-Larry

Comment

People who like this

0 Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Quassanex · Aug 03, 2022 at 05:39 PM 0
Share

Here there is a version that auto-fills the array with currently selected objects in hierarchy.

 using System;
 using UnityEditor;
 using UnityEngine;
   
 public class RenameSelected : EditorWindow
 {
     // public fields
     public GameObject[] objects;
      
     // private fields
     private static readonly Vector2Int size = new Vector2Int(250, 100);
     private string _gameObjectPrefix;
     private int _startIndex;
     private SerializedObject _serializedObject;
   
     [MenuItem("GameObject/Rename Selected")]
     public static void ShowWindow()
     {
         RenameSelected window = GetWindow<RenameSelected>();
         window.minSize = size;
         window.maxSize = size;
         
         // sort gameobjects by sibling index
         var unsortedGameObjects = Selection.gameObjects;
         var sortedGameObjects = new GameObject[unsortedGameObjects.Length];
         for (var i = 0; i < unsortedGameObjects.Length; i++)
         {
             sortedGameObjects[i] = unsortedGameObjects[i];
         }
         Array.Sort(sortedGameObjects, (a, b) => a.transform.GetSiblingIndex().CompareTo(b.transform.GetSiblingIndex()));
 
         window.objects = sortedGameObjects;
     }
   
     private void OnEnable()
     {
         ScriptableObject target = this;
         _serializedObject = new SerializedObject(target);
     }
   
     private void OnGUI()
     {
         _gameObjectPrefix = EditorGUILayout.TextField("Selected Prefix", _gameObjectPrefix);
         _startIndex = EditorGUILayout.IntField("Start Index", _startIndex);
          
         _serializedObject.Update();
   
         SerializedProperty serializedProperty = _serializedObject.FindProperty("objects");
   
         EditorGUILayout.PropertyField(serializedProperty, true);
   
         if (GUILayout.Button("Rename Objects"))
         {
              
             for (int objectI = 0, i = _startIndex; objectI < serializedProperty.arraySize; objectI++)
             {
                 serializedProperty.GetArrayElementAtIndex(objectI).objectReferenceValue.name = $"{_gameObjectPrefix}{i++}";
             }
         }
          
         _serializedObject.ApplyModifiedProperties();
     }
 }

avatar image

Answer by RJ30 · Apr 22 at 10:43 PM

Heres @RaptorRush's code but with an added suffix option (btw thanks raptor absolutely saved me):

 using UnityEngine;
  using UnityEditor;
  
  public class RenameChildren : EditorWindow 
  {
 
      private static readonly Vector2Int size = new Vector2Int(250, 100);
 
      private string childrenPrefix;
      private int startIndex;
      private string childrenSuffix;
 
      [MenuItem("GameObject/Rename children")] public static void ShowWindow() 
      {
          EditorWindow window = GetWindow<RenameChildren>();
          window.minSize = size;
          window.maxSize = size;
      }
 
      private void OnGUI() 
      {
         childrenPrefix = EditorGUILayout.TextField("Children prefix", childrenPrefix);
         childrenSuffix = EditorGUILayout.TextField("Children suffix", childrenSuffix);
 
         startIndex = EditorGUILayout.IntField("Start index", startIndex);
 
         if (GUILayout.Button("Rename children")) 
         {
             GameObject[] selectedObjects = Selection.gameObjects;
             for (int objectI = 0; objectI < selectedObjects.Length; objectI++) 
             {
                 Transform selectedObjectT = selectedObjects[objectI].transform;
                 for (int childI = 0, i = startIndex; childI < selectedObjectT.childCount; childI++) selectedObjectT.GetChild(childI).name = $"{childrenPrefix}{i++}{childrenSuffix}";
             }
         }
     }
 }
Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Unity Answers is in Read-Only mode

Unity Answers content will be migrated to a new Community platform and we are aiming to launch a public beta on June 13. Please note, Unity Answers is now in read-only so we can prepare for the final data migration.

For more information and updates, please read our full announcement thread in the Unity Forum.

Follow this Question

Answers Answers and Comments

786 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Detecting moment when GameObiect is created in hierarchy. 1 Answer

Initialising List array for use in a custom Editor 1 Answer

Multiple Cars not working 1 Answer

how to change gameobject color in hierarchy for highlight purposes. 3 Answers

How to add a component on a GameObject in Custom Inspector 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges