CoderM
2020-12-10 bd0ba263761a866ca0d698169d2d83b6a11c35e7
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -5,6 +5,7 @@
using UnityEngine;
using UnityInput = UnityEngine.Input;
using State = TowerDefense.UI.HUD.EndlessGameUI.State;
using KTGMGemClient;
namespace TowerDefense.Input
{
@@ -40,6 +41,7 @@
                // River Add for Mouse Start Drag & Draged.
                controller.startedDrag += OnStartDrag;
                controller.dragged += this.OnDrag;
                controller.pressed += OnPressed;
                controller.released += this.OnEndDrag;
            }
        }
@@ -61,6 +63,7 @@
            controller.startedDrag -= this.OnStartDrag;
            controller.dragged -= this.OnDrag;
            controller.pressed -= OnPressed;
            controller.released -= this.OnEndDrag;
        }
@@ -109,15 +112,12 @@
                    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;
                    }
                }
@@ -149,6 +149,15 @@
        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
@@ -158,13 +167,21 @@
            {
                EndlessUIStart.instance.SetDarkGround(true);
                Debug.Log("什么时候拖拽的");
                this.isInDragState = true;
                AudioSourceManager.Ins.Play(AudioEnum.DragTower);
                m_GameUI.CheckAllCanPlace();//检查上阵宝石有么有可以合成的位置
                currentTimeScale = Time.timeScale;
                Time.timeScale = 0.5f;
                if (!GameConfig.IsNewbie)
                {
                    //新手引导这里会把引导的速度变慢
                    currentTimeScale = Time.timeScale;
                    Time.timeScale = 0.5f;
                }
                else
                {
                    GuideCtrl.Ins.BeginDrag5_1();
                }
            }
        }
@@ -195,10 +212,16 @@
                this.isInDragState = false;
                Time.timeScale = currentTimeScale;
                if (!GameConfig.IsNewbie)
                    Time.timeScale = currentTimeScale;
            }
        }
        private void OnPressed(PointerActionInfo pointer)
        {
            m_GameUI.OnPressed(pointer);
        }
        /// <summary>
        /// Select towers or position ghosts
        /// </summary>