2015-09-04 28 views
4

我在OS X 10.10上工作的Unity 2D游戏项目,我不能拖动文件或文件夹,它会显示此错误。Unity3d:没有拖放已建立

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

我曾尝试:

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

,但它似乎不工作,如何解决呢?

+0

你指的资产项目选项卡移动文件/文件夹? – user3071284

+0

看起来像一个Unity错误,你有没有尝试过另一个/更新的Unity版本或补丁版本? – JeanLuc

+0

我指的是使用拖动的每个动作,例如将项目文件夹移动到另一个文件夹,将项目对象移动到场景。我想我应该升级到最新版本。 –

回答

4

Unity使用NSPasteboard(剪贴板的OSX共享管理器)来保存Drag & Drop的数据,因此任何监视/修改剪贴板的进程都可能与Drag的拖动有关。

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

编辑:正如其他用户建议,可能的工作另一种解决方案是

退出团结和力量通过活动监视器和 退出pboard过程,然后再次启动统一。

希望它有帮助。

+0

我试过这个解决方案,我删除了Chrome并重新启动Unity,但它没有工作。 –

+0

我重新启动了macbook并禁用了Chrome扩展'push bullet',并且它可以正常工作。谢谢! –

+0

奇怪,但真的... – Serdar

9

最近我有同样的问题,我所做的就是放弃团结力量通过活动监视器退出pboard过程,然后再次启动统一,它为我工作。

+1

我做了你说的和它的工作。非常感谢 – mnaa

+1

也为我工作。如果有人想知道**为什么**,请查看[这个更深入的解释](http://krypted.com/mac-os-x/the-cut-copy-paste-daemon-in- OS-X /)。 :) – Domi

+0

非常感谢它在el队长工作 – hfarazm

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"' 
0

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

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. Open Unity。


就是这样。

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

0

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

killall -HUP pboard 

(从终端或类似的,很明显)