Version: 2020.3

AssetDatabase.GenerateUniqueAssetPath

切换到手册
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) { //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); } } }