4

我在 OS X 10.10 上开发 Unity 2D 游戏项目,我无法拖动文件或文件夹,它会显示此错误。

No Drag&Drop has been setup. Please
UnityEditor.DockArea:OnGUI()

我努力了:

  1. 保存项目然后重新启动
  2. 单击Assets文件夹并选择Reimport All

但是好像不行,怎么解决?

4

6 回答 6

10

最近我遇到了同样的问题,我所做的是退出 Unity 并通过Activity Monitor强制退出pboard进程,然后再次启动 Unity,它对我有用。

于 2015-12-06T03:00:49.063 回答
4

Unity 使用 NSPasteboard(用于剪贴板的 OSX 共享管理器)来保存拖放数据,因此任何监视/修改剪贴板的进程都可能会干扰拖放操作。

我认为可能有一个 Chrome 扩展程序会生成通知,由于某种原因会中断拖放。禁用谷歌浏览器中的所有扩展,如果这不能解决您在 Unity 中的问题,请重新安装谷歌浏览器。

编辑:正如其他用户所建议的,另一个可能有效的解决方案是

退出 Unity 并通过Activity Monitor强制退出pboard进程,然后再次启动 Unity。

希望能帮助到你。

于 2015-09-05T06:44:19.550 回答
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"'
于 2016-04-22T08:32:45.227 回答
0

这是完成最佳答案的最简单方法:

killall -HUP pboard

(显然来自终端或类似的)

于 2017-08-01T14:23:38.010 回答
0

我知道这是一个旧线程,但我想我可能会做出贡献。我在属性抽屉的实现中遇到了“No Drag&Drop”错误,并尝试了这里给出的所有提示,但没有成功。我正要放弃并将其归咎于团结,但后来我找到了解决方案。DragAndDrop.SetGenericData()你看,我在 mouseDown 事件期间设置对象引用并调用方法。我对其进行了更改,以便在 MouseDrag 事件中检查是否存在 DragAndDrop(在 的返回中检查 null DragAndDrop.GetGenericData())。如果它为空,我会在调用之前在 MouseDrag 上设置数据DragAndDrop.StartDrag()。这解决了问题。希望它可以帮助别人。

于 2017-04-24T14:58:15.710 回答
0

根据@user3130047的回答,这是另一个版本。仅限 Mac。

  1. 退出 Unity。
  2. 在控制台中,输入此命令并执行它。

    ps aux | grep pboard | grep -v grep | awk '{print $2}' | xargs kill -9 | launchctl start com.apple.pboard
  3. 打开统一。


而已。

但是,这可能会导致您打开的另一个应用程序复制和粘贴不起作用。因此,您需要重新启动它们。

于 2017-07-04T01:59:55.127 回答