For high-quality texturing, it is critical that you have created proper UVs for your model. A bad UV layout can easily ruin the final look of any model, no matter how much effort was spent on creating the base mesh. Doing proper UV mapping also helps a lot when you are visualizing the texture in 2D, making it easier to apply custom details directly on the texture. This process can save a lot of time and effort. This guide will be a bit subjective and mostly aimed towards high-resolution modeling and texturing. Also, bear in mind that this guide does not take deadlines in to account, although you probably will end up saving time by doing it properly to begin with.
Straight lines. Lines that are perfectly straight on the mesh should be straight in the UV layout. This will keep the texture from distorting. It will also make applying text and symbols much easier, as you can use the lines as guides.
Keep things that belong together close to each other. Having a texture map you can look at and instantly know what everything is on is quite helpful. Optimizing the texture space used is one thing, but I tend to favor a little bit of wasted space over an undistinguishable mess. The example below are a cutout from my UZI models UVs, the red parts represent the bolt, the green parts represent the lower and upper receiver and the blue parts represent the handle. As you can see they are all neatly packed together.
Well-placed seams. Place seams where they will be least visible, avoiding visible seems completely is almost always impossible but placing them in smart places to begin with goes a long way.
Use as few seams as possible. Again, avoiding seams is impossible but having fewer seams is usually better. Try to keep things to a minimum number of shells whenever you can.
Overlapping. Don’t do it, unless you have a specific use-case for the overlaps. Overlapping UVs can be helpful to increase the available texel density on a UV layout, but introduce other problematic issues like the potential for normal mapping seams.
Automatic mapping and sorting. Having an organized UV layout is key for custom details. A automated mess from Maya, Max or whatever software you use are pretty much useless in all cases that doesn’t rely 100% on presets and automation.
Try to map horrible geometry. Decimation Master and Zremesher might be great for reducing polycounts in Zbrush. But don’t use it for your final product if it isn’t a rock for a game engine or a clay render without any UVs at all. Build proper geometry, always.
Split everything up in multiple textures. Unless you really need to for some reason, just keep the entire thing within one UV-space. A separate texture for a prop or such is perfectly fine but using multiple texture sets for one object just complicates things.
Irregular texel density. The texel density of your layout should be even throughout, unless something in particular needs more resolution for a very specific reason. What this means is simply that your shells should be the same relative size in your UV space. Doing this manually can be a pain, if your 3D software doesn’t have a built in solution for this. There are many scripts, plug-ins and stand-alone programs out there that can fix this for you with a couple of clicks.
Heavy stretching. With the exception of the very rare cases where excessive and clearly visible stretching is wanted, it is never a good thing.
Here are some examples of good UV mapping on parts from an AKM rifle model. This is not necessarily examples on good sorting since the model is a work in progress, rather on how to split and unfold the objects.
Black lines represent the geometry of the mesh, white lines represent the seams in the UV layout, and the checkering pattern is there to display the amount of stretching and to verify the texel density on the individual shells.
Rear sight assembly: