예제 #1
0
    void Start()
    {
        Instance        = this;
        CanDoNextEffect = true;

        PVPManager.Instance.Test_LoaderMapAndAvatar();

        if (Define.VSTest)
        {
            PlayerInfoMsg msg = new PlayerInfoMsg();
            msg     = new PlayerInfoMsg();
            msg.pid = 0;
        }
    }
예제 #2
0
    //拖拽Updata
    private void GameObjectDragAndDrog()
    {
        if (mDoMoveTimer > 0)
        {
            mDoMoveTimer -= Time.deltaTime;
            if (mDoMoveTimer < 0)
            {
                mDoMoveTimer = 0;
            }
        }

        if (Input.GetMouseButtonDown(0) && target == null)
        {
            RaycastHit hitInfo;
            target = ReturnGameObjectDrag(out hitInfo);
            if (target != null)
            {
                mMouseDownTargetPos = target.transform.position;
                isMouseDrag         = true;

                screenPosition = EventCamera.WorldToScreenPoint(target.transform.position);
                offset         = target.transform.position - EventCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z));

                //Vector3 pt = target.transform.position.Clone();
                //pt.y += 1.4f;
                //Vector3 screenPt = PVPManager.Instance.AvatarCamera.WorldToScreenPoint(pt);
                //Vector3 worldPt = PVPManager.Instance.FightCamera.ScreenToWorldPoint(screenPt);
                Vector3 worldPt = PVPManager.Instance.FightCamera.ScreenToWorldPoint(Input.mousePosition);
                worldPt.z = target.transform.position.z;
                PVPManager.SetArrowOrgPoint(worldPt);
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            PVPManager.HideArrow();

            RaycastHit hitInfo;

            if (UICardDrag.DragObject != null)
            {
                PureMVC.Patterns.Facade.Instance.SendNotification(NotificationID.Fight_ShowExpPan, false);

                GameObject          totarget = ReturnGameObjectDrag(out hitInfo);
                FightPanel_CardItem cdItm    = UICardDrag.DragObject.GetComponent <FightPanel_CardItem>();

                TD_Card cdCfg      = null;
                bool    haveTarget = false;

                if (cdItm.SerData != null)
                {
                    cdCfg = CardConfig.GetItem(cdItm.SerData.cardId);
                    FightCommonUtil.CheckCardSkillHaveTarget(cdCfg, cdItm.SerData.exp);
                }

                Vector3 pos = Main.CameraUI.ScreenToWorldPoint(Input.mousePosition);
                if (
                    (PVPManager.IsMyTurn || Define.TestMsg) &&
                    pos.y > -0.25f &&
                    !haveTarget)
                {
                    UICardDrag.DragObject = null;
                    FightProxy.Instance.SendUseCard(cdItm.SerData.index, NetProtocal.UseType.CardType, 0);
                }
                else if (null != totarget)
                {
                    CardRole cdRole = PVPManager.Instance.GetCardRoleByTransform(totarget.transform);
                    CardRole mdRole = PVPManager.Instance.GetCardRoleByTransform(target.transform);

                    if (PVPManager.IsMyTurn || Define.TestMsg)
                    {
                        if (null != cdItm.SerData && cdItm.SerData.pid != 0)
                        {
                            if (haveTarget)
                            {
                                FightProxy.Instance.SendUseCard(cdItm.SerData.index, NetProtocal.UseType.MoveType, cdRole.SerData.pos);
                            }
                        }
                        else
                        {
                            Debug.Log("Card_To_Hero No Server Data!!!");
                        }
                    }
                    else
                    {
                    }


                    UICardDrag.DragObject = null;
                }
            }
            else if (Input.GetMouseButtonUp(0) && null != target && mDoMoveTimer == 0)
            {
                GameObject oldtarget = target;
                isMouseDrag  = false;
                mDoMoveTimer = 0.5f;

                GameObject totarget = ReturnGameObjectDrag(out hitInfo);
                CardRole   oldCd    = PVPManager.Instance.GetCardRoleByTransform(oldtarget.transform);

                canDrag = false;
                if (null != totarget && oldtarget != totarget)
                {
                    CardRole toCd = PVPManager.Instance.GetCardRoleByTransform(totarget.transform);

                    if (Define.VSTest)
                    {
                        PVPManager.Instance.ChangeSlotPostion(oldCd, toCd);

                        oldtarget.transform.DOMove(toCd.transform.position, 1f);

                        totarget.transform.DOMove(oldCd.transform.position, 1f).OnComplete(delegate()
                        {
                            canDrag = true;
                        });
                    }
                    else
                    {
                        int moveAdd = toCd.SerData.pos - oldCd.SerData.pos;
                        if (Mathf.Abs(moveAdd) == 1)
                        {
                            FightProxy.Instance.SendMove(oldCd.SerData.index, moveAdd);
                        }
                    }
                }
                else
                {
                    oldtarget.transform.DOMove(oldCd.transform.position, 1f).OnComplete(delegate()
                    {
                        canDrag = true;
                    });
                }
            }

            target = null;
        }

        if (isMouseDrag && target != null)
        {
            Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
            Vector3 currentScreenPt    = EventCamera.ScreenToWorldPoint(currentScreenSpace);
            Vector3 currentPosition    = currentScreenPt + offset;

            Vector3 oldPosition = target.transform.localPosition;
            if (!AllowXMove)
            {
                currentPosition.x = oldPosition.x;
            }

            if (!AllowYMove)
            {
                currentPosition.y = oldPosition.y;
            }

            if (!AllowZMove)
            {
                currentPosition.z = oldPosition.z;
            }

            //target.transform.localPosition = currentPosition;
        }
    }