Beispiel #1
0
        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());
        }
Beispiel #2
0
        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;
            }
        }