Best Way To Manage Gun Ammo

I'm working on an FPS Template for my games and while scripting, I'm wondering what would be a better way to manage the ammo of a gun. I want to have several guns throughout the template, but what I'm trying to do is, instead of having to edit the script whenever you want to add another gun, what's a better way to do it? I'm thinking about arrays but have no idea on how to use them. And also, about gun pickup, what would be a good approach to this?

Breakdown:

What would a smart way to be able to add guns to the game without having to edit the script and add some stuff (arrays?)

and

What's a good approach to gun pickups

I would use prefab gun objects. Keep the data and functions in the script so you can instantiate them at will. The script can also handle the ammo.