// Update is called once per frame void Update() { if (_data == null) { return; } if (_data.userId != playerInfoProxy.userID) { return; } if (Application.isMobilePlatform && Input.touchCount > 1)//手机上点击多个直接跳过 { return; } if (!battleProxy.isStart || battleProxy.isReport) { return; } if (battleProxy.GetIsForbit()) //正在发牌 { return; } if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Camera rayCamera; if (GlobalData.hasHeap) { rayCamera = myselfCamera; } else { rayCamera = Camera.main; } Ray ray = rayCamera.ScreenPointToRay(Input.mousePosition); bool touchHandCard = Physics.Raycast(ray, out hit); if (!touchHandCard) { if (selectCard != null && isTouchMove) { PutCard(); } return; } GameObject touchCard = hit.transform.gameObject; if (touchCard.layer != GlobalData.SELF_HAND_CARDS) { if (selectCard != null && isTouchMove) { PutCard(); } return; } //播放选定动画 if (selectCard != null && selectCard != touchCard) { selectCard.transform.localPosition = new Vector3(selectCard.transform.localPosition.x, selectCard.transform.localPosition.y, 0); } selectCard = touchCard; } else if (Input.GetMouseButtonUp(0) || Input.GetMouseButton(0)) { var curPos = Input.mousePosition; if (curPos.y - moveStart.y > 50) { isTouchMove = true; } } if (selectCard == null) { return; } if (Input.GetMouseButtonDown(0)) { if (selectCard.transform.localPosition.z < 0.2f) { selectCard.transform.localPosition = new Vector3(selectCard.transform.localPosition.x, selectCard.transform.localPosition.y, 0.2f); moveStart = Input.mousePosition; isTouchMove = false; return; } PutCard(); return; } if (isTouchMove) { PutCard(); } }