chenxin
2020-11-14 62b2779db75575bebd80ffac74fc3f25b5b994fa
Assets/Scripts/TowerDefense/Towers/Placement/TowerPlacementGridEndless.cs
@@ -78,6 +78,8 @@
        /// </summary>
        private EndlessTowerGridOpen[,] m_arrTGO;
        public GameObject[] TowerGridOpenObjArr;
        private float[,] m_arrCoinGenTime;
        /// <summary>
@@ -826,9 +828,17 @@
            if (!arrTowerEnergyEffect[x, dy]) return;
            if (play)
            {
                if (!arrTowerEnergyEffect[x, dy].gameObject.activeSelf)
                    arrTowerEnergyEffect[x, dy].gameObject.SetActive(true);
                arrTowerEnergyEffect[x, dy].Play();
            }
            else
            {
                arrTowerEnergyEffect[x, dy].Stop();
                arrTowerEnergyEffect[x, dy].gameObject.SetActive(false);
            }
        }
        /// <summary>
@@ -851,7 +861,8 @@
        {
            PlacementTile tileToUse;
#if UNITY_STANDALONE
         tileToUse = placementTilePrefab;
            //tileToUse = placementTilePrefab;
            tileToUse = placementTilePrefabMobile;
#else
            tileToUse = placementTilePrefabMobile;
#endif
@@ -885,6 +896,8 @@
            }
        }
        PlacementTile currentCanPlace;//记录当前标记
        /// <summary>
        /// 开始拖拽的时候判断哪些可以放置
        /// </summary>
@@ -915,17 +928,50 @@
            }
        }
        PlacementTile currentCanPlace;//记录当前标记
        /// <summary>
        /// 播放升级动画
        /// </summary>
        /// <param name="allTowerP"></param>
        public void PlayPS(List<IntVector2> allTowerP)
        {
            for (int i = 0; i < allTowerP.Count; i++)
            {
                m_Tiles[allTowerP[i].x, allTowerP[i].y].SetParticleSystem(true);
            }
        }
        /// <summary>
        /// /// 停止所有升级动画
        /// </summary>
        public void StopPS()
        {
            int iy = dimensions.y - 1;//3
            for (int ix = 0; ix < dimensions.x; ix++)
            {
                for (int y = iy; y >= dimensions.y - AttackRowNumbers; --y)
                {
                    if (m_arrGridType[ix, y] == PlacementGridType.EGridOpen)
                    {
                        m_Tiles[ix, y].SetParticleSystem(false);
                    }
                }
            }
        }
        /// <summary>
        /// 拖动时候实时检查距离哪个格子近
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        public void CheckCanPlaceUpdate(int x, int y)
        public void CheckCanPlaceUpdate(int x, int y, bool isEmpty, string towerName)
        {
            CloseCanPlace();
            currentCanPlace = m_Tiles[x, y];
            currentCanPlace.SetSelect(true);
            if (isEmpty)
            {
                currentCanPlace.SetTowerVirtualshadow(towerName);
            }
        }
        /// <summary>
@@ -956,6 +1002,7 @@
                    }
                }
            }
            StopPS();
        }
#if UNITY_EDITOR