I was looking for some thoughts on the recommended approach to make an isometric game with 2D graphics. While this could be made entirely in 2D, is it preferred or easier to do it in 3D, where you are placing the 2D sprites on a Quad in a 3d world, with the camera at a fixed angle? I’m thinking that going 3D where you place sprites on the x-z will solve a lot of the sorting problems associated with these games, but may be more computationally expensive where, for example, you would be forced to use 3D physics instead of 2D (say for allowing the user to select objects by tapping on them).
I can’t find much discussions on this topic or what the overall general opinion is, so I’m interested in hearing your thoughts on this. I am also new to Unity 2D, so maybe I’m over-thinking this and I will not encounter the sorting issues I mentioned above.
I think you are overestimating the differences between 3d in Unity and 2d in Unity. Even when Unity is set to 2D mode you are still “placing the 2D sprites on a Quad in a 3d world, with the camera at a fixed angle”. Setting unity to 2d mode just makes that easier for you. As far as sorting is concerned, using Unity sprites with the Sprite Renderer component allows you to assign sorting layers so you can control the rendering order without messing with the z position. That being said you can still sort sprites using z values and you can use the same sorting layers on 3d objects pretty easily.
At the end of the day there isn’t really Unity3d and Unity 2d, just unity. Chances are you’ll end up using 3d features in a 2d game and 3d features in a 2d game and you can switch the editor between 2d mode and 3d mode at will.
Indeed. Depth sorting with sprites is very easy and flexible in an iso game. The simplest method is just to bind the z to the y. So as the sprite moves “down” (y), adjust the z accordingly so it moves “forward”.