I was playing with Unity. Extending functionality bit by bit. Then I decided to make my game available also for mobile device.
So I searched for another tutorial from Unity – 2D Roguelike 14 of 14 : Mobile Controls. The tutorial seemed to be ok. But at one moment I froze in horror. The author was using #ifdef directly in high level code.
In my opinion this is very bad code smell. If you’re C expert and you’re playing with low-level API then you’ll need #ifdef, but this is high level code.
You may ask what is wrong about #ifdef in my “C# Script”. Well, here is very nice answer for C++.
#ifdef is something which should be treated with maximal caution, because it has tendency to explode into many Heisenbugs.