void Update() { if (IsPointerOverGameObject(Input.mousePosition)) { if (mMobileTouchCamera.enabled) { mMobileTouchCamera.enabled = false; } return; } if (!mMobileTouchCamera.enabled) { mMobileTouchCamera.enabled = true; } RaycastHit hit; // 从鼠标所在的位置发射 Vector2 screenPosition = Input.mousePosition; if (Physics.Raycast(Camera.main.ScreenPointToRay(screenPosition), out hit)) { // 1.点击格子,主要用于行军 Vector3 pointCubePosition = MapManager.GetInstance().TerrainPositionToCenterPosition(hit.point); pointCubePosition.y = mOriginalPosition.y; mPointCube.transform.position = pointCubePosition; if (Input.GetMouseButtonUp(0)) { // 这个主要是因为防止刚刚点击武将,战斗菜单就显示出来了 if (msIgnoreRaycast) { msIgnoreRaycast = false; return; } Wujiang currentWujiang = Wujiang.GetCurrentWujiang(); if (currentWujiang != null) { // 1.当前处于要攻击状态 // 这个主要是因为防止刚刚点击武将,战斗菜单就显示出来了 if (currentWujiang.GetWujiangState() == WujiangState.WujiangState_Prepare_Attack) { // 释放技能 mCanvasBattleMenu.MoveAndStartSkill(MapManager.GetInstance().TerrainPositionToCorrdinate(pointCubePosition)); return; } // 2.显示战斗菜单 currentWujiang.ShowBattleMeun(new Vector3(mPointCube.transform.position.x, currentWujiang.transform.position.y, mPointCube.transform.position.z)); return; } // 2.点击城市 if (hit.collider.CompareTag("City")) { if (currentWujiang != null || Pathfinding.GetInstance().IsShowingPath()) { return; } if (Input.GetMouseButtonUp(0)) { GameObject city; if (hit.collider.gameObject.name.Equals("Model")) { // 关隘 city = hit.collider.transform.parent.gameObject; } else { // 港口 city = hit.collider.transform.gameObject; } // 显示小菜单 mCanvasGameMenu.SetCity(city.GetComponent <City>()); mCanvasGameMenu.ShowCanvasGameMenu(screenPosition); } } } } // 3.点击空白 if (Input.GetMouseButtonDown(0)) { mCanvasGameMenu.gameObject.SetActive(false); mCanvasBattleMenu.gameObject.SetActive(false); } }