AssetDatabase.AssetPathToGUID
Declaration
public static string AssetPathToGUID(string path);public static string AssetPathToGUID(string path, AssetPathToGUIDOptions options = AssetPathToGUIDOptions.IncludeRecentlyDeletedAssets);Параметры
| Параметр | Описание |
|---|---|
| путь | Project относительный путь для ассета. |
| варианты | Указывает, должен ли этот метод возвращать GUID для недавно удаленных ассетов. Значение по умолчанию — AssetPathToGUIDOptions.IncludeRecentlyDeletedAssets. |
Возвращаемое значение
строка GUID ассета.
Описание
Получить GUID для ассета в path.
Все пути относятся к папке проекта, например: "Assets/MyTextures/hello.png".
При удалении ассета, GUID для этого ассета остается в базе данных ассетов Unity до закрытия Редактора. В результате, по умолчанию этот метод будет возвращать GUIDs для ассетов, которые были удалены в текущей сессии Unity Editor.
Для ассетов, которые не существуют и не были удалены в текущей сессии Редактора, этот метод возвращает пустую строку.
Если вам нужно возвращать пустую строку для ассетов, которые были удалены в текущей сессии Редактора, передайте значение AssetPathToGUIDOptions.OnlyExistingAssets в качестве параметра "options".
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 } }
См. AssetDatabase.GUIDFromAssetPath для версии, которая возвращает UnityEditor.GUID вместо строки.