OB - Object Rename helps you group or batch rename multiple objects with very straightforward features.
You can simply use $original to use the current name and then $index to use the order of the object and add it to the name.
Variables you can use when naming:
$original: The GameObject's current name.
$mesh: The name of the GameObject (if it has a mesh, otherwise you can set a fallback text)
$index: The current order/index of the GameObject in the selection.
$children: The total count of children under this object.
$tag: The assigned tag to the current object.
Some of the use cases
Having a unique name for animations: Let's say you have a parent GameObject with 10s of objects under it (trees, rocks, etc.) and you decided to animate them. Having sibling GameObjects with the same name will cause a confusion with the animation since multiple objects share the exact same name. Simply, you can add the index counter to make it different.
Organizing the hierarchy: You can have the GameObjects' names clear and easy to understand, for instance, you can retrieve the mesh name and use it as the GameObject name easily.
Knowing the child count for parents: You can use the $children variable to count any children under the selected GameObjects. This will help you optimize and have a better view of your level (in terms of organizing).
Sometimes you just want to add a word after or before an object's name: Using the $original variable lets you keep the existing name, then you can add any words, or even variables, before or after it.
And more...
Check out my other OB - Tools