Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

AssetDatabase.MakeEditable

Объявление

public static bool MakeEditable(string path);

Параметры

path Указывает путь к файлу относительно корня проекта.

Возвращает

bool true, если Unity успешно сделала файл доступным для редактирования в системе контроля версий. В противном случае возвращается false.

Описание

Открывает файл для редактирования в системе управления версиями.

Ваша система контроля версий может быть настроена таким образом, чтобы разрешить одновременное редактирование определенных типов файлов только одному человеку, чтобы избежать конфликтов слияния, которые возникают, когда несколько человек редактируют один и тот же файл. В этом случае вы должны «открыть» этот файл для редактирования (также известного как «извлечение»), чтобы убедиться, что у вас есть разрешение на редактирование файла в это время. Используйте эту функцию, чтобы сделать файл «открытым для редактирования» в системе контроля версий, которая его поддерживает.

Пути к файлам, которые находятся за пределами папки проекта Unity или не в папках с контролем версий (например, «Библиотека» или «Временный»), всегда считаются редактируемыми. MakeEditable возвращает для них true и ничего не делает в противном случае.

Пути к файлам, которые относятся к нелокальным папкам пакета, всегда считаются недоступными для редактирования. MakeEditable возвращает для них false.

Если система контроля версий не активна, все пути к файлам внутри проекта считаются уже редактируемыми. MakeEditable возвращает true и в противном случае ничего не делает.

При использовании системы управления версиями, например Perforce Helix, MakeEditable запускает операцию "Извлечь" для файлов, если только они еще не доступны для редактирования. Для файлов, которые еще не были добавлены в систему контроля версий, MakeEditable/ добавит их в систему контроля версий.

Если вы настроили обратный вызов перед оформлением заказа, Unity вызывает его как часть MakeEditable. Дополнительные сведения см. в разделе PreCheckoutCallback.

using UnityEngine; using UnityEditor; public class ExampleScript : MonoBehaviour { [MenuItem("Example/Checkout Selected Asset")] public static void MenuExample() { var path = AssetDatabase.GetAssetPath(Selection.activeObject); var ok = AssetDatabase.MakeEditable(path); if (!ok) Debug.LogError($"Could not make {path} editable"); } }

Смотрите так же: AssetDatabase.IsOpenForEdit.


Объявление

public static bool MakeEditable(string[] paths, string prompt, List outNotEditablePaths);

Параметры

paths Указывает массив путей к файлам относительно корня проекта..
prompt Диалоговое окно с предложением показать пользователю, если необходимо выполнить операцию контроля версий. Если null (по умолчанию), запрос не отображается.
outNotEditablePaths Вывести список путей к файлам, которые нельзя сделать редактируемыми.

Возвращает

bool true, если Unity успешно сделала все файлы редактируемыми в системе контроля версий.

Описание

Открывает список файлов для редактирования в системе управления версиями.

Многофайловый вариант MakeEditable, который также может дополнительно отображать запрос пользователю, если необходимо выполнить операцию контроля версий Checkout/Add. Если пользователь отменяет диалоговое окно, Unity не делает файлы редактируемыми. Если редактор Unity работает в пакетном режиме, Unity не отображает диалоговое окно и действует так, как если бы пользователь принял диалоговое приглашение.

Если вы передаете список outNotEditablePaths, эта функция заполняет его путями к файлам, которые Unity может сделать редактируемыми.

using System.Linq; using UnityEngine; using UnityEditor; public class ExampleScript : MonoBehaviour { [MenuItem("Example/Checkout Selected Assets")] public static void MenuExample() { var guids = Selection.assetGUIDs; var paths = guids.Select(AssetDatabase.GUIDToAssetPath).ToArray(); var ok = AssetDatabase.MakeEditable(paths, "These files need to be checked out"); if (!ok) Debug.LogError("Could not make some files editable"); } }

Смотрите так же: AssetDatabase.IsOpenForEdit.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3