我在 OS X 10.10 上开发 Unity 2D 游戏项目,我无法拖动文件或文件夹,它会显示此错误。
No Drag&Drop has been setup. Please
UnityEditor.DockArea:OnGUI()
我努力了:
- 保存项目然后重新启动
- 单击
Assets
文件夹并选择Reimport All
但是好像不行,怎么解决?
我在 OS X 10.10 上开发 Unity 2D 游戏项目,我无法拖动文件或文件夹,它会显示此错误。
No Drag&Drop has been setup. Please
UnityEditor.DockArea:OnGUI()
我努力了:
Assets
文件夹并选择Reimport All
但是好像不行,怎么解决?
最近我遇到了同样的问题,我所做的是退出 Unity 并通过Activity Monitor强制退出pboard进程,然后再次启动 Unity,它对我有用。
Unity 使用 NSPasteboard(用于剪贴板的 OSX 共享管理器)来保存拖放数据,因此任何监视/修改剪贴板的进程都可能会干扰拖放操作。
我认为可能有一个 Chrome 扩展程序会生成通知,由于某种原因会中断拖放。禁用谷歌浏览器中的所有扩展,如果这不能解决您在 Unity 中的问题,请重新安装谷歌浏览器。
编辑:正如其他用户所建议的,另一个可能有效的解决方案是
退出 Unity 并通过Activity Monitor强制退出pboard进程,然后再次启动 Unity。
希望能帮助到你。
根据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"'
这是完成最佳答案的最简单方法:
killall -HUP pboard
(显然来自终端或类似的)
我知道这是一个旧线程,但我想我可能会做出贡献。我在属性抽屉的实现中遇到了“No Drag&Drop”错误,并尝试了这里给出的所有提示,但没有成功。我正要放弃并将其归咎于团结,但后来我找到了解决方案。DragAndDrop.SetGenericData()
你看,我在 mouseDown 事件期间设置对象引用并调用方法。我对其进行了更改,以便在 MouseDrag 事件中检查是否存在 DragAndDrop(在 的返回中检查 null DragAndDrop.GetGenericData()
)。如果它为空,我会在调用之前在 MouseDrag 上设置数据DragAndDrop.StartDrag()
。这解决了问题。希望它可以帮助别人。
根据@user3130047的回答,这是另一个版本。仅限 Mac。
ps aux | grep pboard | grep -v grep | awk '{print $2}' | xargs kill -9 | launchctl start com.apple.pboard
而已。
但是,这可能会导致您打开的另一个应用程序复制和粘贴不起作用。因此,您需要重新启动它们。