wangguan
2020-12-17 dcbbe82ceca921e73e1789ae87ea8ac6a59c7bff
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -138,60 +138,68 @@
        void OnMouseMoved(PointerInfo pointer)
        {
            // We only respond to mouse info
            var mouseInfo = pointer as MouseCursorInfo;
            // var mouseInfo = pointer as MouseCursorInfo;
            if ((mouseInfo != null) && (m_GameUI.isBuilding))
            {
                m_GameUI.TryMoveGhost(pointer, false);
            }
            // if ((mouseInfo != null) && (m_GameUI.isBuilding))
            // {
            //     m_GameUI.TryMoveGhost(pointer, false);
            // }
        }
        float currentTimeScale = 1.0f;
        float dragTime = 0;
        bool isDraging = false;
        protected virtual void OnStartDrag(PointerActionInfo pointer)
        {
            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);
            if (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();
                }
                    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();
                    }
                }
            }
        }
        protected override void OnDrag(PointerActionInfo pointer)
        {
            if ((pointer != null) && (m_GameUI.isBuilding))
            if (isDraging && (pointer != null) && (m_GameUI.isBuilding))
            {
                m_GameUI.TryMoveGhost(pointer, false);
                //m_GameUI.CheckTowerPlace(pointer);
                m_GameUI.CheckTowerPlaceNew(pointer);
                m_GameUI.CheckTowerPlace(pointer);
            }
        }
@@ -202,18 +210,38 @@
        protected void OnEndDrag(PointerActionInfo pointer)
        {
            // EndDrag 只能放置相关的GhostTower.
            if (this.isInDragState)
            if (isDraging)
            {
                EndlessUIStart.instance.SetDarkGround(false);
                if (this.isInDragState)
                {
                    EndlessUIStart.instance.SetDarkGround(false);
                    m_GameUI.CloseCanPlace();//关闭所有绿色底板
                AudioSourceManager.Ins.Play(AudioEnum.PutTower);
                m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意
                m_GameUI.onEndTowerDrag(pointer);
                    AudioSourceManager.Ins.Play(AudioEnum.PutTower);
                    m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意
                    m_GameUI.onEndTowerDrag(pointer);
                this.isInDragState = false;
                    this.isInDragState = false;
                if (!GameConfig.IsNewbie)
                    Time.timeScale = currentTimeScale;
                    if (!GameConfig.IsNewbie)
                        Time.timeScale = currentTimeScale;
                }
                Invoke("ResetDraging", 0.2f);
            }
        }
        private void ResetDraging()
        {
            isDraging = false;
            Debug.Log("isDraging = false");
            if (m_GameUI.HasTower)
            {
                Debug.LogError("推拽已经结束了,为什么m_GameUI.HasTower是true????,强行恢复塔位");
                m_GameUI.EndDragCancelPlaceTower();
            }
            if (m_GameUI.isBuilding)
            {
                Debug.LogError("推拽已经结束了,为什么 m_GameUI.isBuilding是true????");
            }
        }