First, in order to create the unified UV-Map, you need to combine all the separate objects into a single mesh object by selecting them all and then pressing "CTRL + J" on your keyboard to join them.
They will still have individual materials assigned and, but now you can create a UV map for the whole object. If you want to tweak the material settings later on you can go into edit mode and open the materials tab in the properties panel.
If you want to separate the objects again, press "P" in edit mode and separate the objects "By loose parts".
Now you select the parts of the mesh where you want to change the material (when you press "L" you can select all the faces that are connected to your selection, useful for selecting previously unjoined parts of the mesh) and in the materials tab you select a material from the list. To assign the material just press "Assign" underneath the materials list.
Now to create the diffuse map you need to "bake" the diffuse color into a texture. I will try to explain the process using the Cycles engine (because your render looks like that's what you are using), but I'll try to keep it short. If you need further details, either comment on this answer or search for yourself (just look up "cycles baking").
In order to bake the texture you have to have the UV-unwrapped model with all the materials assigned.
When that that is all prepared, you need to go into the node editor and make some changes to your materials:
For each material you need to add a new Image Texture node and connect a UV-Map node to it. This Image Texture will be used exclusively for baking. You have to assign a texture to the Image Texture node(this will be your baked map). To assign the texture you have to create it first:
Go into the UV/Image Editor and click new (or the "plus" symbol next to the texture selection menu). A popup will appear where you can give your texture a name and set the resolution. When you have created the texture you go back to the node editor and assign the newly created texture to each of your material's Image Texture nodes.
Before you go on to baking, make sure that, in each material, you have selected your Texture-node containing the bake-map.
Finally, to bake the diffuse colors, you go to the render tab in the properties panel and scroll all the way down until you see the bake menu. There you can set the type of data to bake (go ahead and change it to "Diffuse color") and, among others, a Margin setting. If you are having problems with jagged edges on you textured model, or if your different UVs are very close to each other so that the baked texture overlaps in some places, you can turn this value up or down.
When you have made all the changes you want, make sure to check again, that the right texture is selected in the materials (selecting a different texture will overwrite it and possibly destroy data) and you can press the "Bake" button. Depending on the complexity of the object and the resolution of the texture, baking might take a while, but when it's finished, you should have a full diffuse map for your object.
To bake the specularity map you need to create a new texture and change all the Image Texture nodes to bake onto that texture. In the baking options simply change the data type to "Glossy Color" and bake again.