这是一个创建于 2018 天前的主题,其中的信息可能已经有所发展或是发生改变。
在做一个物品栏。按照常见的套路,我要增加一个 Drag&Drop 的功能。我尝试了在 item 上 IDragHandler,IEndDragHandler, 物品栏上 IDropHandler 的方案,但是会出现 Drop 事件不能触发的情况;于是改用了在 item 的 OnEndDrag() 函数中调用 drop 方法的方案,这下只要能 drag 就能 drop 了,然而编辑器中运行得好好的,打包发布后运行就经常不触发 drag 事件了。于是我又改成了 IPointerDownHandler 和 IPointerUpHandler,一旦检测到 PonterDown 事件就设置个状态,然后在该状态内物品坐标就随着鼠标走,等到 PointerUp 的时候再调用 drop。这个方案的运行效果也和前面的类似,一到发布就失常了。我怀疑过是不是 item 被挡住了导致没有点击到,于是增加了一个通过 GraphicRaycaster 来检测是否 hit 的功能。这个功能打出的日志可以确认,并没有被挡住。这下就迷茫了……
野路子搞 Unity 开发,基本套路都是摸索来的,后面要怎么调呢?有哪些可能会导致发布后的运行效果和编辑器中的不一致的情况?我编辑和发布都是在一个机器上,Win10 环境。