//could fail due to cost or illegal grid pos
    void TryToSpawnAt(Vector2 gridPos)
    {
        if (!IsOkGridSpace(gridPos))
        {
            return;
        }

        DefenderSelector selected = DefenderSelector.selectedDefender;

        if (selected)
        {
            Defender def = selected.defenderToSpawn.GetComponent <Defender>();
            if (starCounter.TryToUseStars(def.spawnCost))
            {
                Instantiate(def.gameObject, gridPos, Quaternion.identity, defendersParent);
                audioSource.clip = spawnOKClip;
                audioSource.Play();
            }
            else
            {
                audioSource.clip = noMoneyToSpawnClip;
                audioSource.Play();
            }
        }
    }