Ok so the first thing I did:
- Add a mirror modifier
- Reduce your mesh polygon count
I did not Unwrap your model as I think that It should something you got to learn (not using the smart UV method). But your mesh should be better at this point.
Try to use as much blender modifier as possible. it is only when you want to export your mesh that you make a copy of it and apply all the modifiers.
Second advice is to thin when modeling to optimize your mesh a first time (just simple things) then pass a second time on it to check where you could improve it.
As an advice for the UV, you should try to isolate the cube areas and mark the seams (red):
Anyway, that was a long work and you still have some on this model but this is just detailing, especially the cube areas. If it as model for an FPS, you should consider deleting the faces that won't be visible for the player.
If it is a multiplayer model, you should consider the previous advice and create a low poly model to render instead of the high poly one
Good luck :D