Cooldown básico

[SerializeField]
private float cooldown = 1f;

private float siguienteUso;

void Update()
{
    if (attackAction.action.WasPressedThisFrame() &&
        Time.time >= siguienteUso)
    {
        Atacar();

        siguienteUso =
            Time.time + cooldown;
    }
}

Consultar si está listo

bool listo =
    Time.time >= siguienteUso;

Porcentaje restante

float restante =
    Mathf.Max(
        siguienteUso - Time.time,
        0f
    );

float porcentaje =
    1f - restante / cooldown;

Resumen rápido

Time.time
siguienteUso
cooldown