I plan to do most of works including scripts and testing on Windows version Unity3D. And after the game is almost ready to released, I put the files to Mac version Unity3D for iOS to do the final changes. I hope there are not too much differences between the Windows and iOS version and I only need do some minor changes on Mac. Is it workable?
if most is <= 60% then yes and the project is simple enough, not requiring advanced stuff.
Otherwise no.
You can neither test any input on windows nor create an iOS platform project to see the real limitations that will be imposed from mobile and AOT nor the impact of shaders in case you intended to target opengl es 2.
and last but not least: you can’t get further than 50-60% without any hardware test to get an idea of the performance and ram
I’ve probably done 90% of my game on a PC if not more. I just switch over to mac a test it every once in a while. The only thing that can’t be done on the PC anything that has to do with touches or accelerometer. Everything else can be done from the comfort of your PC. Just make sure to test after making any big changes
You can design FOR mobile ON your PC, just remember that when choosing shaders, memory allocation, vertex count, culling options - look up benchmarks for iOS and try to use mobile shaders, set your emulation to iOS device (but even that isn’t always a fair indication of how it will look on the device) and pragma strict your scripts etc etc
Until you can get a Mac and Unity iOS license, it’s doable, just not the best/most efficient way of doing it. If you are working on a team with one person on a Mac then of course this becomes easier if you can test daily , but again, nothing beats running Unity iOS on a dedicated Mac and using Unity remote to test as you go.
Thanks all, very useful
Its not a bad idea either to implement 2 types of controls, and set them to on or off with a boolean variable.
for instance you can hide your windows based controls in an if statement
if(isWindows == true){
//WINDOWS CONTROLS
}
if(isWindows == false){
//TOUCH CONTROLS
}