private void CheckRange()
    {
        int position = unit.GetPosition().GetPositionIndex();

        //Checks if we are standing in the right spot for the ability.
        if (!ability.requiredPosition[position])
        {
            Disable();
            image.sprite = ability.icon;
            return;
        }

        //Checks whether there's enemies within range for the attack.
        if (ability.canTargetOpponents)
        {
            int enemiesAvailable = 0;
            for (int i = 0; i < ability.attackRange.Length; i++)
            {
                bool canHit = ability.attackRange[i];
                //If we can't hit anything in that spot, we don't even care to check for enemies there.
                if (!canHit)
                {
                    continue;
                }

                if (CombatManager.instance.enemyPool[i].unit != null)
                {
                    enemiesAvailable++;
                }
            }
            if (enemiesAvailable > 0)
            {
                Enable();
            }
            else
            {
                Disable();
                image.sprite = ability.icon;
            }
        }

        if (ability.canCastOnAllies || ability.canCastOnSelf)
        {
            Enable();
        }
    }