wangguan
2020-12-04 06facfa32a388f74c6eba139e1a8fe4700307a6e
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseTouchInput.cs
@@ -4,6 +4,7 @@
using UnityEngine;
using UnityInput = UnityEngine.Input;
using State = TowerDefense.UI.HUD.EndlessGameUI.State;
using KTGMGemClient;
namespace TowerDefense.Input
{
@@ -85,6 +86,7 @@
            if (InputController.instanceExists)
            {
                InputController.instance.tapped += OnTap;
                InputController.instance.pressed += OnPressed;
                InputController.instance.startedDrag += OnStartDrag;
            }
@@ -114,6 +116,7 @@
            if (InputController.instanceExists)
            {
                InputController.instance.tapped -= OnTap;
                InputController.instance.pressed -= OnPressed;
                InputController.instance.startedDrag -= OnStartDrag;
            }
            if (m_GameUI != null)
@@ -121,6 +124,11 @@
                m_GameUI.stateChanged -= OnStateChanged;
                m_GameUI.ghostBecameValid -= OnGhostBecameValid;
            }
        }
        private void OnPressed(PointerActionInfo pointer)
        {
            m_GameUI.OnPressed(pointer);
        }
        /// <summary>
@@ -192,19 +200,36 @@
                }
            }
        }
        float currentTimeScale = 1.0f;
        /// <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;
            //按照鼠标键盘的修改
            // EndDrag 只能放置相关的GhostTower.
            if (this.isInDragState)
                m_GameUI.onEndTowerDrag(pointer);
            //m_GameUI.TryPlaceTower(pointer);
            {
                EndlessUIStart.instance.SetDarkGround(false);
            this.isInDragState = false;
            return;
                AudioSourceManager.Ins.Play(AudioEnum.PutTower);
                m_GameUI.CloseCanPlaceRenderer();//关闭所有宝石示意
                m_GameUI.onEndTowerDrag(pointer);
                this.isInDragState = false;
                if (!GameConfig.IsNewbie)
                    Time.timeScale = currentTimeScale;
            }
        }
@@ -223,13 +248,50 @@
        /// <param name="pointer"></param>
        protected virtual void OnStartDrag(PointerActionInfo pointer)
        {
            //Debug.Log("TouchInput StartDraged.");
            // //Debug.Log("TouchInput StartDraged.");
            // // select towers
            // m_GameUI.TrySelectTower(pointer);
            // // River: 为了开始拖动后可以直接显示GhostTower
            // m_GameUI.TryMoveGhost(pointer, false);
            // this.isInDragState = true;
            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;
            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)
                {
                    //新手引导这里会把引导的速度变慢
                    currentTimeScale = Time.timeScale;
                    Time.timeScale = 0.5f;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag5_1();
                }
            }
        }
        /// <summary>
@@ -237,12 +299,20 @@
        /// </summary>
        protected override void OnDrag(PointerActionInfo pointer)
        {
            // if ((pointer != null) && (m_GameUI.isBuilding))
            // {
            //     m_GameUI.TryMoveGhost(pointer, false);
            // }
            // return;
            //按照鼠标键盘的修改
            if ((pointer != null) && (m_GameUI.isBuilding))
            {
                m_GameUI.TryMoveGhost(pointer, false);
            }
            return;
                m_GameUI.CheckTowerPlace(pointer);
            }
        }
        /// <summary>