protected override void DoPointerDown(PointerEventData eventData) { if (!AllowDrag) { return; } last = Camera.main.ScreenToWorldPoint(GameInput.Instance.mousePosition); parent = transform.parent; Transform first = parent; if (parent != null) { while (true) { if (first.parent != null) { first = first.parent; } else { break; } } } transform.SetParent(first); startDown = Common.currentTimeMillis(); // 发送消息,表示已经开始拖放对象 dragMsg = new DropDragMsg((int)DropDragMsgID.drg_Start); dragMsg.srcParent = parent; dragMsg.gameObject = gameObject; SendMsg(dragMsg); StartCoroutine(ToTop()); }
public override void ProcessMsg(IMsgPack msg) { DropDragMsg dragMsg = null; switch (msg.MsgID) { case (int)DropDragMsgID.drg_Start: break; case (int)DropDragMsgID.drg_Draging: break; case (int)DropDragMsgID.drg_End: dragMsg = msg as DropDragMsg; if (dragMsg.rayTarget == gameObject) { dragMsg.gameObject.transform.SetParent(this.transform); // 发送一个接受消息 msg.MsgID = (int)DropDragMsgID.drg_AccetDrop; SendMsg(msg); } break; } }