Объявление
public static string GenerateUniqueAssetPath(string path);Описание
Создает новый уникальный путь для объекта.
Когда вы вызываете этот метод, Unity проверяет, существует ли уже ресурс с указанным вами путем и именем файла. Если он не существует, Unity возвращает ту же строку, которую вы указали. Если уже существует актив с совпадающим путем и именем файла, Unity добавляет к имени файла цифру 1 и проверяет снова. Он продолжает увеличивать это число и повторять проверку, пока не найдет несуществующее имя файла, и не вернет путь с этим новым уникальным именем файла.
Все сгенерированные пути относятся к папке проекта, например: "Assets/MyTextures/hello.png".
using UnityEditor;
using UnityEngine;
public class GenerateUniqueAssetPathExample : MonoBehaviour
{
[MenuItem("APIExamples/GenerateUniqueAssetPath")]
static void GenerateUniqueAssetPathForFilesWithSameName()
{
for (int i = 0; i < 5; ++i)
{
//Имена файлов, которые должны быть созданы:
// Активы/Артефакты/material.mat
// Активы/Артефакты/материал 1.mat
// Активы/Артефакты/материал 2.mat
// Активы/Артефакты/материал 3.mat
// Активы/Артефакты/материал 4.mat
var uniqueFileName = AssetDatabase.GenerateUniqueAssetPath("Assets/Artifacts/material.mat");
Material material = new Material(Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, uniqueFileName);
}
}
}