Problem with importing Blender model to Unity

I made a level for my game, which I’m making using Unity, I’ve done the modelling side of the level, it took me ages to make.

So I decided to put it on unity to see what it looked like in the game so far, and I’ve noticed half the level is missing, only to be seen once I turned it around to the other side.

Here’s what the level looks like in Blender, bare in mind it’s a work in progress, I’ve still to do the texturing, but it should give you the idea:

Here’s what it looks like in Unity:

I tried extracting the walls for example to give them 2 faces for each side, but that made things look stranger, you can only see the inside of the boxes, not the outside, which is confusing. The collision detection is the same story, I end up falling through the floor on the parts I can’t see.

I can make the faces appear on both sides if I use the toon shader, but even then, the collider is still the same, I fall through the floor.

How do I fix this?

I’m not fussed about what it looks like from the outside, as it won’t be seen from the outside in the actual game.

Download link to .blend file (as requested):

Can you upload the .blend ?
It makes it easier for people to trouble shoot with you.

It’s uploaded. (Link’s in original post.)

Problem is that you have several bad faces .
To see them better select this object in Object mode :
(the faces are pink in my screenshots , it’s not a bug it’s just because i don’t have the textures you have and when blender can’t find texture, it display them pink)
press N then in display turn off “Textured Solid”

The object is already in smooth shading, but if it was not the case in the toolshelf click on “Smooth” shading button (the solid shading would not show the bad faces), you will see this :

Notice the black parts ? it’s a big hint that there are bad faces in the model that create inverted normals (very likely why some part of the model is invisible in unity, because their faces are not facing you)

If the problem was only inverted normals the solution would be to go in Edit mode for this object, select all and press CTRL+N to recalculate the normals.
But the problem is that you have internal faces, that is puzzling blender on which direction to give to the normals of each faces, so CTRL+N will not fix it.
You need first to fix the model so there’s no internal faces, like these ones :
or these ones
or those
etc… you have a lot of those bad faces that you need to delete, as they’re only messing up the model.

Additionally, as you mentionned extruding, i suspect you have a lot of overlapped faces then, as a W -> Remove Double will indeed remove a lot of doubled vertices.

And you have a ngon there :
I’m not sure Unity or the format you’re exporting with can deal with ngons, you should transform that face it into tris or quads before export.

Once the model is completely fixed (no doubled faces, no internal faces) , CTRL+N will be able to fix the normals direction and the model will not seem to have invisible walls anymore once exported

That did the trick, thanks!