Version: 2018.2
public static string GetUniqueName (string[] existingNames, string name);

Parameters

existingNamesA list of pre-existing names.
nameDesired name to be used as is, or as a base.

Returns

string A name not found in the list of pre-existing names.

Description

Make a unique name using the provided name as a base.

If the target name is in the provided list of existing names, a unique name is generated by appending the next available numerical increment.

using UnityEngine;
using UnityEditor;

public class ExampleClass { public void Example() { string[] names = new string[] { "Object", "Thing", "Thing (1)" };

// will display "Object (1)" Debug.Log(ObjectNames.GetUniqueName(names, "Object"));

// will display "Thing (2)" Debug.Log(ObjectNames.GetUniqueName(names, "Thing"));

// will display "Other" Debug.Log(ObjectNames.GetUniqueName(names, "Other")); } }