wangguan
2020-11-09 5d16d6e5172daf42d386baa5c09663b422f05a59
移动塔的时候碰到空塔位给一个虚影,没有资源暂时return
3 files modified
36 ■■■■■ changed files
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs 2 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs 9 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs 25 ●●●●● patch | view | raw | blame | history
Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -164,6 +164,8 @@
            if ((pointer != null) && (m_GameUI.isBuilding))
            {
                m_GameUI.TryMoveGhost(pointer, false);
                m_GameUI.CheckTowerPlace(pointer);
            }
        }
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -275,14 +275,23 @@
        public bool isFreeAtackPos(int x, int y)
        {
            if (m_AvailableCells[x, y])
            {
                return false;
            }
            if (m_arrGridType[x, y] == PlacementGridType.EGridOpen)
            {
                return true;
            }
            return false;
        }
        public void GetMeshRender(int x, int y, string name)
        {
            m_Tiles[x, y].gameObject.name = name;
        }
        /// <summary>
        /// 是否是等待购买的攻击塔位.
        /// </summary>
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -600,12 +600,16 @@
            UIPointer pointer = WrapPointer(pinfo);
            Tower sTower = PickTowerInGrid(pointer);
            if (sTower != null)
            {
                return false;
            }
            if ((m_GridPosition.x >= 0) && (m_GridPosition.y >= 0))
            {
                if (m_CurrentArea.isFreeAtackPos(m_GridPosition.x, m_GridPosition.y))
                {
                    return true;
                }
            }
            return false;
@@ -838,6 +842,21 @@
            overTimer = null;
        }
        public MeshRenderer temporaryMat;//移动时候的虚像材质
        public void CheckTowerPlace(PointerInfo pointerInfo)
        {
            return;
            //下面是为了设置一个虚拟的塔
            if (isFreeAttackGrid(pointerInfo) && m_CurrentTower.controller.towerFeature == EFeatureTower.NULL)
            {
                Debug.Log("得到了一个空的塔位");
                (m_CurrentArea as TowerPlacementGridEndless).GetMeshRender(m_GridPosition.x, m_GridPosition.y, "1");
                //if(temporaryMat)
            }
        }
        /// <summary>
        /// 拖动一个Tower之后,松开鼠标或者EndDrag.
        /// 1: 目标点可合成,则直接合成。
@@ -847,6 +866,12 @@
        public void onEndTowerDrag(PointerInfo pointerInfo)
        {
            bool bSkill = false;
            if (temporaryMat != null)
            {
                //移动虚像隐藏
                temporaryMat.material = null;
            }
            if (!m_CurrentTower || !m_CurrentTower.controller)
            {
                CancelPlaceTower(pointerInfo);