I was intrigued by your comment about creating a damage range for the grenade. Here is my solution:
if(collider.TryGetComponent<Unit>(out Unit targetUnit))
{
float damageDistance =
Vector3.Distance(collider.transform.position, _targetPosition) / DAMAGE_RADIUS;
int rangedDamage = Mathf.RoundToInt(Mathf.Lerp(30f, 20f, damageDistance) ;
targetUnit.Damage(rangedDamage);
Debug.Log(rangedDamage);
}
When the grenade lands on the same grid position as the unit the unit receives the max damage but units farther away but within range receive less.