I am building a tower with a spiral staircase in it. The problem I am having is this. If I build a spiral staircase in Maya, it has a huge polycount, bad, and I would have to use a mesh collider which I beleive uses more resources (correct?), this is also bad. If I build one step in Maya then import it add a box collider (less resources?) and create a prefab, I would have to place each step manually (100+ steps). Is there a third option which I am missing? Or a command that I am missing, like the Duplicate Special command, or duplicate with Transform in Maya.
No, the only two ways you can do it are the two you mentioned, though I don't think you're understanding mesh colliders correctly. People often create entire levels in 3D modeling programs, and then import them with mesh colliders on them, and the games run just fine (I'm talking about potentially tens of thousands of verts on a single model, here).
I remember 3DS Max had an Optimize feature that would drastically lower the polycount of the model without sacrificing quality. Perhaps Maya has something similar you could look for, but again, I wouldn't worry about your model. Just import it and put a mesh collider on it.
Sidenote: Saying something has a "huge polycount" isn't helpful... what is helpful would be to post the model statistics, saying exactly how many tris/verts the model has, and even posting a picture of it.
Use a simplified mesh for the collision mesh. For example, a ramp would be fine for collision (and more pleasant to walk up/down) rather than using every step. So you have a mesh for display and another mesh for collision.
Actually there is a third way, which is to make a prefab and place them by a script when the game starts. I had done a spiral around a circle this way (think of a spiral stair that itself has a curvature). Can be done with simple transform.Translate and transform.rotate. Or adjusted when instantiating, by instantiating them a bit higher and a bit rotated you can obtain a nice spiral
I know this is old but like 99% of the question here, it lacks a “proper” answer.
You should always optimize your mesh no matter what. But just using the same mesh as a mesh collider as well is killing. Always use boxes or spheres whenever possible for this. If you absolutely need more detail use a mesh.
For a normal stairs of say “6 steps” I would import the mesh and add 6 box colliders. For a spiral stairs you can do the same but you have to rotate your box colliders, you can rotate collider components by attaching them to there own empty GameObjects. The colliders will overlap but this is no problem as long as you check for tagged collisions. If your spiral stairs is to narrow and steep you might still get into trouble with the height of the character not fitting in between, besides rethinking your design (unless you really intent on such a small and cramped space) you could try to add multiple boxes per step, from inner (small) to outer (large). Boxes are always a ton cheaper even when not aligned to world axis then checking per triangle on a custom collider mesh.
Yet, when you think you can get away with some awful optimized expensive calculations then go for it. Don’t optimize prematurely but keep the above in mind when designing.