示例#1
0
    void Update()
    {
        ReplayMgr rm = ReplayMgr.GetInstance();

        if (isPlaying && rm.isReplay() && nextPlayTime > 0 && nextPlayTime < Time.time)
        {
            float next = rm.takeAction(false);

            if (next == 0)
            {
                nextPlayTime = 0;
                return;
            }

            nextPlayTime = Time.time + next;
            updateProgress();
        }

        if (lastClickTime > 0 && lastClickTime + 0.5f < Time.time)
        {
            setButton(true);
            lastClickTime = 0;
        }
    }
示例#2
0
    void Update()
    {
        ReplayMgr replay = ReplayMgr.GetInstance();

        if (replay.isReplay() || !isMyself())
        {
            return;
        }

        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = camera_2D.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit, m_handCard_layer))
            {
                GameObject ob = hit.collider.gameObject;

                if (ob.CompareTag(tagValue))
                {
                    onMJClicked(ob);

                    Vector3 pos = ob.transform.position;
                    moved          = false;
                    oldPosition    = pos;
                    screenPosition = camera_2D.WorldToScreenPoint(pos);
                    offset         = pos - camera_2D.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z));

                    draging = true;
                }
            }
        }

        if (currentObj == null)
        {
            return;
        }

        Vector3 currentPos = currentObj.transform.position;

        if (Input.GetMouseButtonUp(0))
        {
            Vector3 off = currentPos - oldPosition;

            if (moved)
            {
                if (Math.Abs(off.x) > 0.017f || Math.Abs(off.y) > 0.025f)
                {
                    onMJClicked(currentObj);
                }
                else
                {
                    currentObj.transform.position = oldPosition;
                }
            }

            draging = false;
        }
        else if (draging)
        {
            Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
            Vector3 currentPosition    = camera_2D.ScreenToWorldPoint(currentScreenSpace) + offset;

            if (currentPosition != currentPos)
            {
                moved = true;

                Vector3 off = currentPosition - oldPosition;

                if (Math.Abs(off.x) > 0.017f || Math.Abs(off.y) > 0.025f)
                {
                    currentObj.transform.position = currentPosition + new Vector3(0, 0.04f, 0);
                }
                else
                {
                    currentObj.transform.position = currentPosition;
                }
            }
        }
    }