版本: Unity 6 (6000.0)
语言English
  • C#

AssetDatabase.GenerateUniqueAssetPath

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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); } } }