【问题标题】:Unity3d: No Drag&Drop has been setupUnity3d:没有设置拖放
【发布时间】:2015-09-04 17:17:27
【问题描述】:

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

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

我试过了:

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

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

【问题讨论】:

  • 您是指在资产下的项目选项卡中移动文件/文件夹吗?
  • 看起来像一个 Unity 错误,您是否尝试过另一个/更新的 Unity 版本或补丁版本?
  • 我指的是使用拖动的每个动作,例如将项目文件夹移动到另一个文件夹,将项目对象移动到场景。我想我应该升级到最新版本。

标签: unity3d unity3d-2dtools unity5


【解决方案1】:

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

【讨论】:

  • 我完全按照你说的做了,而且效果很好。非常感谢
  • 也为我工作。如果有人想知道为什么,请查看this more-in-depth explanation。 :)
  • 非常感谢。让我摆脱这个奇怪的问题。
【解决方案2】:

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

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

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

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

希望对你有帮助。

【讨论】:

  • 我尝试了这个解决方案,我删除了 Chrome 并重新启动了 Unity,但它没有工作。
  • 我重新启动 macbook 并禁用 chrome 扩展程序 push bullet,它可以工作。谢谢!
  • 忽略此答案并阅读下面 Sinyo 的答案(或希望有一天会在上面)
【解决方案3】:

根据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"'

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      killall -HUP pboard
      

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

      【讨论】:

        【解决方案6】:

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

        1. 退出 Unity。
        2. 在控制台输入这条命令并执行。

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


        而已。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多