public void SpawnPowerups()
    {
        float     offset          = 0.5f;
        Tilemap   tilemapGameplay = GameObject.Find("/Grid/TilemapGameplay").GetComponent <Tilemap>();
        Transform powerupsHolder  = new GameObject("Powerups").transform;

        for (int x = 0; x < MapManager.Instance.width; x++)
        {
            for (int y = 0; y < MapManager.Instance.height; y++)
            {
                Vector3    spawnPosition     = new Vector3(x + offset, y + offset);
                Vector3Int spawnCellPosition = tilemapGameplay.WorldToCell(spawnPosition);
                TileBase   tile = tilemapGameplay.GetTile(spawnCellPosition);

                bool spawning = Random.value > (1f - spawnChance);

                if ((tile == box) && spawning)
                {
                    int     randomIndex   = Random.Range(0, powerups.Count);
                    Powerup randomPowerup = powerups[randomIndex];

                    GameObject powerupInstance = Instantiate(powerupGameObject, spawnPosition, Quaternion.identity, powerupsHolder) as GameObject;

                    PowerupMainBehaviour powerupMainBehaviour = powerupInstance.GetComponent <PowerupMainBehaviour>();
                    powerupMainBehaviour.powerupsController = this;
                    powerupMainBehaviour.SetPowerup(randomPowerup);
                }
            }
        }
    }
    private void Start()
    {
        tilemapGameplay = GameObject.Find("/Grid/TilemapGameplay").GetComponent <Tilemap>();

        boxCollider         = GetComponent <BoxCollider2D>();
        boxCollider.enabled = false;

        powerup = GetComponent <PowerupMainBehaviour>();
    }