コード例 #1
0
 private void SyncWorkingTileData()
 {
     WorkingTileData.Clear();
     for (int i = 0; i < tileParent.childCount; i++)
     {
         Transform    tile      = tileParent.GetChild(i);
         PLEBlockUnit blockUnit = tile.GetComponent <PLEBlockUnit>();
         if (blockUnit)
         {
             List <LevelUnitStates> levelStates = blockUnit.GetLevelStates();
             int      tileType = blockUnit.TileType;
             TileData tileData = new TileData(tileType, tile.position, levelStates);
             WorkingTileData.Add(tileData);
         }
     }
 }
コード例 #2
0
    private void UpdateTiles(List <GridTile> tiles, LevelUnitStates state, bool wasToldToChangeColor)
    {
        if (tiles.Count == 0)
        {
            return;
        }

        SFXManager.Instance.Play(SFXType.UI_Click);
        int currentWaveIndex = PLESpawnManager.Instance.CurrentWaveIndex;

        for (int i = 0; i < tiles.Count; i++)
        {
            GridTile     tile      = tiles[i];
            PLEBlockUnit blockUnit = tile.blockUnit;
            LevelUnit    levelUnit = tile.levelUnit;
            if (!blockUnit.HasActiveSpawn)
            {
                List <LevelUnitStates> levelUnitStates = blockUnit.GetLevelStates();
                levelUnitStates[currentWaveIndex] = state;
                blockUnit.SyncTileStatesAndColors();
                levelUnit.TryTransitionToState(state, wasToldToChangeColor);
            }
        }
    }