path | 指定相对于项目根目录的文件路径。 |
bool true
如果 Unity 在版本控制系统中成功地使文件可编辑。否则,返回 false
。
使文件在版本控制中可编辑。
您的版本控制系统可能被配置为一次只允许一个人编辑某些类型的文件,以避免在多个人编辑同一个文件时产生的合并冲突。在这种情况下,您必须“打开”该文件以进行编辑(也称为“签出”),以确保您现在有权编辑该文件。使用此函数使文件在支持它的版本控制系统中“可供编辑”。
位于 Unity 项目文件夹之外或不在版本控制文件夹下(例如,“Library”或“Temp”)的文件路径始终被视为可编辑。 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"); } }
paths | 指定相对于项目根目录的一组文件路径。 |
prompt | 如果需要执行版本控制操作,则向用户显示的对话框提示。如果为 null (默认),则不显示任何提示。 |
outNotEditablePaths | 无法使其可编辑的文件路径的输出列表。 |
bool true
如果 Unity 在版本控制系统中成功地使所有文件可编辑。
使一组文件在版本控制中可供编辑。
MakeEditable
的多文件变体,它还可以选择在需要进行签出/添加版本控制操作时向用户显示提示。如果用户取消对话框,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"); } }