Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

AssetDatabase.GenerateUniqueAssetPath

Declaration

public static string GenerateUniqueAssetPath(string path);

Параметры

Параметр Описание
путь Имя пути для создания.

Описание

Создает новый уникальный путь для ассета.

При вызове этого метода Unity проверяет, существует ли уже ассет с указываемым путем и именем файла. Если нет, Unity возвращает ту же строку, что и вы. Если существующий ассет имеет такой же путь и имя файла, Unity добавляет число 1 к имени файла и проверяет снова. Он продолжает увеличивать это число и проверять снова, пока не найдет несуществующее имя файла, и возвращает путь с новым уникальным именем файла.

Все генерируемые пути относятся к папке проекта, например: Assets/Textures/hello.png.

По умолчанию Unity использует пробел для разделения имени файла от числа, которое он добавляет. Например, если вы указываете путь Assets/Textures/hello.png и этот файл уже существует, Unity возвращает Assets/Textures/hello 1.png. Чтобы изменить это поведение, отключите в Редакторе параметр Пространство перед номером в именах ассетов или установите EditorSettings.assetNamingUsesSpace на false.

using UnityEditor;
using UnityEngine;

public class GenerateUniqueAssetPathExample : MonoBehaviour { [MenuItem("APIExamples/GenerateUniqueAssetPath")] static void GenerateUniqueAssetPathForFilesWithSameName() { for (int i = 0; i < 5; ++i) { //The file names that this should create are: // Assets/Artifacts/material.mat // Assets/Artifacts/material 1.mat // Assets/Artifacts/material 2.mat // Assets/Artifacts/material 3.mat // Assets/Artifacts/material 4.mat var uniqueFileName = AssetDatabase.GenerateUniqueAssetPath("Assets/Artifacts/material.mat");

Material material = new Material(Shader.Find("Specular")); AssetDatabase.CreateAsset(material, uniqueFileName); } } }