起初是发现ReferenceCollector在增加引用时需要一个一个导,挺麻烦的。即使你呢lock住inspector也是麻烦,所以干脆就扩展了一下支持整个文件夹拉入后直接引用,仅支持单层目录结构,不过对于我来说已经足够了,不知其他小伙伴需不需要。反正写了就丢出来好了
if (eventType == EventType.DragUpdated || eventType == EventType.DragPerform)
{
// Show a copy icon on the drag
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
if (eventType == EventType.DragPerform)
{
DragAndDrop.AcceptDrag();
for (int i = 0; i < DragAndDrop.objectReferences.Length; i++)
{
var path = DragAndDrop.paths[i];
Object obj;
if (File.Exists(path))
{
obj = DragAndDrop.objectReferences[i];
AddReference(dataProperty, obj.name, obj);
}
else if (Directory.Exists(path))
{
DirectoryInfo folder = new DirectoryInfo(path);
FileInfo[] files = folder.GetFiles();
foreach (FileInfo file in files)
{
if (Path.GetExtension(file.ToString()) == ".meta")
{
continue;
}
obj = AssetDatabase.LoadAssetAtPath(path + "/" + file.Name, typeof(Object));
AddReference(dataProperty, obj.name, obj);
}
}
else
{
Debug.LogError("你拉进来的是什么玩意?");
}
}
}
Event.current.Use();
}