I just realized that you use Unity, which I'm not very experienced in... sooo... shrug
My suspicion is that the levels are too large, and there too many things running code and drawing.
As I said earlier, unloading anything that is off-screen can save a lot of frames. Try to turn on what Unity calls Occlusion Culling to prevent things from rendering when it doesn't need to.
I'm not sure if this is how it works, but having a lot of physics objects in a huge level could cause quite a bit of lag(in my experience, it does), which is why you should be unloading stuff.
Something else that could cause lag could be loops that run too long, so that might be something to investigate.