From 17c6e8b6f2aee4ed9a15c886f54a73f0cb61b125 Mon Sep 17 00:00:00 2001 From: weixudong <weixudong4700@ktgame.com> Date: Wed, 09 Dec 2020 17:14:59 +0800 Subject: [PATCH] Merge branch 'master' of ssh://172.16.1.52:8091/GemBattle into master --- Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs | 151 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 101 insertions(+), 50 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs b/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs index 4590996..6916e90 100644 --- a/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs +++ b/Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs @@ -178,6 +178,17 @@ break; } } + + if (isRelease) + { + resetDragingTime += Time.deltaTime; + if (resetDragingTime > 0.2f) + { + isRelease = false; + resetDragingTime = 0; + ResetDraging(); + } + } } /// <summary> @@ -201,36 +212,76 @@ } } float currentTimeScale = 1.0f; + bool isRelease = false; + float resetDragingTime; /// <summary> /// Called on input release, for flicks /// </summary> protected override void OnRelease(PointerActionInfo pointer) { - // // EndDrag 只能放置相关的GhostTower. - // if (this.isInDragState) - // m_GameUI.onEndTowerDrag(pointer); - // //m_GameUI.TryPlaceTower(pointer); - - // this.isInDragState = false; - // return; + //Debug.Log($"OnRelease isDraging:{isDraging} this.isInDragState:{this.isInDragState}"); //按照鼠标键盘的修改 // EndDrag 只能放置相关的GhostTower. - if (this.isInDragState) + if (isDraging) { - EndlessUIStart.instance.SetDarkGround(false); + if (this.isInDragState) + { + EndlessUIStart.instance.SetDarkGround(false); - AudioSourceManager.Ins.Play(AudioEnum.PutTower); + AudioSourceManager.Ins.Play(AudioEnum.PutTower); + m_GameUI.CloseCanPlace();//关闭所有绿色底板 + m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意 + m_GameUI.onEndTowerDrag(pointer); + + this.isInDragState = false; + + if (!GameConfig.IsNewbie) + Time.timeScale = currentTimeScale; + } + Debug.Log($"延迟0.2f执行ResetDraging isDraging:{isDraging} isRelease:{isRelease}"); + + //Invoke("ResetDraging", 0.2f); + + if (!isRelease) + { + //Debug.Log("开始倒计时"); + resetDragingTime = 0.0f; + isRelease = true; + } + + } + + } + + private void ResetDraging() + { + //Debug.Log("ResetDraging"); + Debug.Log("延迟查询"); + if (m_GameUI.HasTower) + { + Debug.Log("m_GameUI.HasTower!!!!"); + + m_GameUI.CloseCanPlace();//关闭所有绿色底板 m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意 - m_GameUI.onEndTowerDrag(pointer); + m_GameUI.EndDragCancelPlaceTower();//强制释放 + + EndlessUIStart.instance.SetDarkGround(false); this.isInDragState = false; if (!GameConfig.IsNewbie) + { Time.timeScale = currentTimeScale; + } + //Debug.LogError("推拽已经结束了,强行恢复塔位了 , m_GameUI.HasTower:" + m_GameUI.HasTower); } - + if (m_GameUI.isBuilding) + { + //Debug.LogError("推拽已经结束了,为什么 m_GameUI.isBuilding是true????"); + } + isDraging = false; } /// <summary> @@ -242,54 +293,54 @@ // 点击不处理 } + float dragTime = 0; + bool isDraging = false; + /// <summary> /// Assigns the drag pointer and sets the UI into drag mode /// </summary> /// <param name="pointer"></param> protected virtual void OnStartDrag(PointerActionInfo pointer) { - // //Debug.Log("TouchInput StartDraged."); - // // select towers - // m_GameUI.TrySelectTower(pointer); - // // River: 为了开始拖动后可以直接显示GhostTower - // m_GameUI.TryMoveGhost(pointer, false); - - // this.isInDragState = true; - if (GameConfig.IsNewbie) + if (!isDraging) { - if (!GameConfig.CanDragTower) + Debug.Log("开始拖拽"); + + isDraging = true; + if (GameConfig.IsNewbie) { - Debug.Log("新手不可以拖拽"); - return; + if (!GameConfig.CanDragTower) + { + Debug.Log("新手不可以拖拽"); + return; + } + } + // select towers + m_GameUI.TrySelectTower(pointer); + // River: 为了开始拖动后可以直接显示GhostTower + m_GameUI.TryMoveGhost(pointer, false); - } - //按照鼠标键盘的修改 - // select towers - m_GameUI.TrySelectTower(pointer); - // River: 为了开始拖动后可以直接显示GhostTower - m_GameUI.TryMoveGhost(pointer, false); - - CommonDebugHelper.Debug("OnStartDrag"); - if (m_GameUI.HasTower) - { - CommonDebugHelper.Debug("m_GameUI.HasTower:" + m_GameUI.HasTower); - - EndlessUIStart.instance.SetDarkGround(true); - - this.isInDragState = true; - AudioSourceManager.Ins.Play(AudioEnum.DragTower); - m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置 - - if (!GameConfig.IsNewbie) + if (m_GameUI.HasTower) { - //新手引导这里会把引导的速度变慢 - currentTimeScale = Time.timeScale; - Time.timeScale = 0.5f; - } - else - { - GuideCtrl.Ins.BeginDrag5_1(); + //Debug.Log("点击到了塔,开始推拽"); + + EndlessUIStart.instance.SetDarkGround(true); + + 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(); + } } } } @@ -307,7 +358,7 @@ // return; //按照鼠标键盘的修改 - if ((pointer != null) && (m_GameUI.isBuilding)) + if (isDraging && (pointer != null) && (m_GameUI.isBuilding)) { m_GameUI.TryMoveGhost(pointer, false); -- Gitblit v1.9.1