Bom dia Bruno, tudo bom?
Vamos lá. Quanto as munições da arma você pode implementar uma variavel contadora que mantem a quantidade de munição que a jogadora tem.
Quando chamar o método Atirar
vc diminui o valor dessa variável em um e quando chegar a 0 vc impede a arma de atirar.
Quando ao cooldown. Vc pode ter uma especie de cronometro regressivo que só permite que a jogadora atire quando o valor desse cronometro for menor que zero.
Assim, toda vez que vc atirar vc atribui o valor desse cronometro para o tempo em segundos que vc quer que ele espere.
No update do cronometro vc subitrai o valor do Time.deltaTime
do tempo atual do cronometro