Object Snapping

I’ve been searching tutorials and documentation for this feature and either I’m just horrible with this or it’s not what I want. I’m looking for a snap function that will line up two objects as best as possible. So, if I have two boxes of the exact same size, can I snap two faces together so that the 4 edges line up perfectly? I’ve messed with the magnet icon in the 3D view to enable “snapping” and tried the vertex, edge, and face snap, but they all seemed clunky and didn’t do even remotely what I wanted. In more practical terms, I have 2 sections of a hallway where the openings of each object are the same size. I want to snap and then they’re lined up, thus creating one long continuous hallway. Halp!

I would suggest using the array modifier if your objects are the same. And if you want to make a change to one of the units, you can always apply the modifier and edit the mesh.

are your two hallways in the same object or different? if different you will need to join them so that in edit mode you can merge the verticies that you want, theres an icon just left of snapping that looks like 2 arrows and that allows you to automatically merge verticies that are in the same location, and you can select the entire edge loop of one hallway opening and then merge it to the other hallway opening.
Edit: when testing this out I had vertex snapping on, not sure if that made too much of a difference or not.

They’re the same. I should have specified that this is all in edit mode. I guess they don’t have to be the same object, but my intention was that this would be one solid game asset when I was done. I’d like to be able to make several different “pieces” that I can mix and match willy-nilly. So, say I make 5 different hallway variances with bends and different intersections (T, L, or X joints) I could then make a load of different scenes by reusing them in any combination. I hope that makes sense. And this is just one example. But ya, I’d like to be able to quickly, and perfectly match the two meshes together at the joint.