| | |
| | | using UnityEngine; |
| | | using UnityInput = UnityEngine.Input; |
| | | using State = TowerDefense.UI.HUD.EndlessGameUI.State; |
| | | using KTGMGemClient; |
| | | |
| | | namespace TowerDefense.Input |
| | | { |
| | |
| | | if (UnityInput.GetKeyDown(key)) |
| | | { |
| | | Tower controller = EndlessLevelManager.instance.TowerLibrary[key - KeyCode.Alpha1]; |
| | | if (EndlessLevelManager.instance.Currency.CanAfford(controller.purchaseCost)) |
| | | if (m_GameUI.isBuilding) |
| | | { |
| | | if (m_GameUI.isBuilding) |
| | | { |
| | | m_GameUI.CancelGhostPlacement(); |
| | | } |
| | | EndlessGameUI.instance.SetToBuildMode(controller); |
| | | EndlessGameUI.instance.TryMoveGhost(InputController.instance.basicMouseInfo); |
| | | m_GameUI.CancelGhostPlacement(); |
| | | } |
| | | EndlessGameUI.instance.SetToBuildMode(controller); |
| | | EndlessGameUI.instance.TryMoveGhost(InputController.instance.basicMouseInfo); |
| | | break; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | float currentTimeScale = 1.0f; |
| | | protected virtual void OnStartDrag(PointerActionInfo pointer) |
| | | { |
| | | if (GameConfig.IsNewbie) |
| | | { |
| | | if (!GameConfig.CanDragTower) |
| | | { |
| | | Debug.Log("新手不可以拖拽"); |
| | | return; |
| | | } |
| | | |
| | | } |
| | | // select towers |
| | | m_GameUI.TrySelectTower(pointer); |
| | | // River: 为了开始拖动后可以直接显示GhostTower |
| | | m_GameUI.TryMoveGhost(pointer, false); |
| | | |
| | | this.isInDragState = true; |
| | | AudioSourceManager.Ins.Play(AudioEnum.DragTower); |
| | | if (m_GameUI.HasTower) |
| | | { |
| | | EndlessUIStart.instance.SetDarkGround(true); |
| | | |
| | | //Debug.Log("开始拖拽"); |
| | | this.isInDragState = true; |
| | | AudioSourceManager.Ins.Play(AudioEnum.DragTower); |
| | | m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置 |
| | | |
| | | if (!GameConfig.IsNewbie) |
| | | { |
| | | //新手引导这里会把引导的速度变慢 |
| | | currentTimeScale = Time.timeScale; |
| | | Time.timeScale = 0.5f; |
| | | } |
| | | else |
| | | { |
| | | GuideCtrl.Ins.BeginDrag5_1(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | protected override void OnDrag(PointerActionInfo pointer) |
| | |
| | | if ((pointer != null) && (m_GameUI.isBuilding)) |
| | | { |
| | | m_GameUI.TryMoveGhost(pointer, false); |
| | | |
| | | m_GameUI.CheckTowerPlace(pointer); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 鼠标抬起 |
| | | /// </summary> |
| | | /// <param name="pointer"></param> |
| | | protected void OnEndDrag(PointerActionInfo pointer) |
| | | { |
| | | // EndDrag 只能放置相关的GhostTower. |
| | | if (this.isInDragState) |
| | | { |
| | | EndlessUIStart.instance.SetDarkGround(false); |
| | | |
| | | AudioSourceManager.Ins.Play(AudioEnum.PutTower); |
| | | m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意 |
| | | m_GameUI.onEndTowerDrag(pointer); |
| | | |
| | | this.isInDragState = false; |
| | | |
| | | if (!GameConfig.IsNewbie) |
| | | Time.timeScale = currentTimeScale; |
| | | } |
| | | m_GameUI.onEndTowerDrag(pointer); |
| | | |
| | | this.isInDragState = false; |
| | | |
| | | //Debug.Log("结束拖拽"); |
| | | |
| | | } |
| | | |
| | | /// <summary> |