AssetDatabase.MakeEditable
Declaration
public static bool MakeEditable(string path);Параметры
| Параметр | Описание |
|---|---|
| путь | Project относительный путь к файлу. |
Возвращаемое значение
логическое 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,.
Declaration
public static bool MakeEditable(string[] paths, string prompt, List<string> outNotEditablePaths);Параметры
| Параметр | Описание |
|---|---|
| пути | Указывает массив путей к файлам относительно корня проекта. |
| просьбы | Диалоговый запрос, который должен быть показан пользователю, если требуется выполнить операцию управления версиями. Если null (по умолчанию), запрос не показывается. |
| outNotEditablePaths | Вывод списка путей к файлам, которые не могут быть изменены. |
Возвращаемое значение
логическое true если Unity успешно сделал все файлы редактируемыми в системе управления версиями.
Описание
Открывает список файлов для редактирования в системе управления версиями.
Многофайловый вариант MakeEditable, который также может по желанию показывать пользователю подсказку, если требуется выполнить операцию управления версиями "Захватить/Добавить". Если пользователь отменяет диалог, Unity не делает файлы редактируемыми. Если Unity Editor работает в пакетном режиме, 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,.