老师,我在做黑暗之光背包的时候,用了UGUI里面IBeginDragHandler, IDragHandler, IEndDragHandler三个接口来实现拖拽,现在有两个问题:
1.拖拽结束后拿PointerEventData里的pointerCurrentRaycast是本身,这个我要怎么拿到框这个gameobject呢
2.拖拽到另一个框的时候物品是在框的下面,怎么实现拖拽的时候就在其它框上面呢
这里可以看下老师做的背包系统
老师没有使用ugui自带的拖拽,而是自己实现了拖拽,然后自己做检测鼠标下面的游戏物体是什么
拖拽的时候会把拖拽的iamge的raycast target取消勾选了,这样检测的时候不会碰撞检测到当前正在拖拽的image图片
框就是物品的父亲啊。。。很简单。
回复 @ siki: 他的第一问就是,如何拿到那个框。。。我回答的也是他的第一问。
还记得我发的那个UI么?http://www.sikiedu.com/classroom/5/thread/510
我跟他的一样,用UGUI实现的。当时请教过你很多问题呢。我的拖拽,点到的也是物品,但是想要找框,本事物品就是框的子物体,所以物品的父亲就是框。GetComoponInParent就可以。
第二问,其实也不难啊,开始拖拽的时候,设置物品为它父亲的最后一个兄弟,停止时,如果可以放在停止的位置,那就设置为当前框的孩子,否则设置为原来框的孩子,在将position置为zero。
就是这样的啊。。