我正在开发OS X 10.10上的Unity 2D游戏项目,我无法拖动文件或文件夹,它会显示此错误。
No Drag&Drop has been setup. Please
UnityEditor.DockArea:OnGUI()
我试过了:
Assets
文件夹,然后选择Reimport All
但它似乎不起作用,如何解决?
答案 0 :(得分:10)
最近我遇到了同样的问题,我做的是退出Unity并强制通过活动监视器退出 pboard 进程,然后再次启动Unity,它对我有用。
答案 1 :(得分:4)
Unity使用NSPasteboard(用于剪贴板的OSX共享管理器)来保存Drag& Drop的数据,因此监视/修改剪贴板的任何进程都可能会使Drag& Drop陷入混乱。
我认为可能会有Chrome扩展程序生成通知,这些通知会因某种原因导致拖放。 停用Google Chrome中的所有扩展程序,如果这无法解决您在Unity中遇到的问题,请重新安装Google Chrome。
编辑:正如其他用户所建议的那样,另一种可行的解决方案是
退出Unity并强制通过活动监视器退出 pboard 进程 然后再次启动Unity。
希望它有所帮助。
答案 2 :(得分:1)
基于Sinyo提供的答案,我创建了一个小的shell脚本来加速这个过程,并且我想分享。 [仅限Mac]它关闭Unity,杀死pboard进程,然后重新打开Unity。
#!/bin/sh
osascript -e 'quit app "Unity"'
pid=$(ps -fe | grep 'pboard' | grep -v grep | awk '{print $2}')
if [[ -n $pid ]]; then
kill $pid
else
echo "Does not exist"
fi
osascript -e 'launch the application "Unity"'
答案 3 :(得分:0)
我知道这是一个老线程,但我想我可能会做出贡献。我在属性抽屉的实现中遇到了“No Drag& Drop”错误,并尝试了此处给出的所有提示但没有成功。我即将放弃并将其归咎于团结,但后来我找到了解决方案。你看,我正在设置对象引用并在mouseDown事件期间调用DragAndDrop.SetGenericData()
方法。
我更改了它,以便在MouseDrag事件中我检查是否存在DragAndDrop(在DragAndDrop.GetGenericData()
的返回中检查null)。如果为null,我在调用DragAndDrop.StartDrag()
之前在MouseDrag上设置数据。
这解决了这个问题。希望它可以帮助别人。
答案 4 :(得分:0)
根据@user3130047的答案,这是另一个版本。仅限Mac。
ps aux | grep pboard | grep -v grep | awk '{print $2}' | xargs kill -9 | launchctl start com.apple.pboard
而已。
但是,这可能会导致您的另一个打开的应用程序副本和粘贴不起作用。所以,你需要重新启动它们。
答案 5 :(得分:0)
这是获得最佳答案的最简单方法:
killall -HUP pboard
(显然来自终端或类似)