Version: 2021.3

AssetDatabase.AssetPathToGUID

切换到手册
public static string AssetPathToGUID (string path);
public static string AssetPathToGUID (string path, AssetPathToGUIDOptions options= AssetPathToGUIDOptions.IncludeRecentlyDeletedAssets);

参数

path 资源的文件系统路径。
options Specifies whether this method should return a GUID for recently deleted assets. The default value is AssetPathToGUIDOptions.IncludeRecentlyDeletedAssets.

返回

string GUID。

描述

获取 path 下资源的 GUID。

所有路径均是相对于项目文件夹的路径,例如:"Assets/MyTextures/hello.png"。

When you delete an asset, the GUID for that asset remains in Unity's asset database until you close the Editor. As a result, by default this method will still return GUIDs for assets that were deleted in the current session of the Unity Editor.

For assets that do not exist, and were not deleted in the current Editor session, this method returns an empty string.

If you need it to return an empty string for assets that were deleted in the current Editor session, pass the value AssetPathToGUIDOptions.OnlyExistingAssets as the "options" parameter.

using UnityEngine;
using UnityEditor;

public class Example : MonoBehaviour { [MenuItem("AssetDatabase/AssetPathToGUID")] static void Doit() { // texture.jpg exists or was recently deleted string t = AssetDatabase.AssetPathToGUID("Assets/texture.jpg"); Debug.Log(t); // t will be not null }

[MenuItem("AssetDatabase/AssetPathToGUID Existing Assets Only")] static void DoitExistingAssetsOnly() { // texture.jpg does not exist on disk string t = AssetDatabase.AssetPathToGUID("Assets/texture.jpg", AssetPathToGUIDOptions.OnlyExistingAssets); Debug.Log(t); // t will be null } }

See AssetDatabase.GUIDFromAssetPath for a version that returns a UnityEditor.GUID instead of a string.