Раньше Unity непосредственно компилировала C# в платформозависимый бинарный код для ios и android. Сейчас они это делают (могут делать) через C++. Это было сделанно, т.к. C++ компиляторы лучше оптимизируют и умеют генерить более производительны код. По умолчанию эта опция включена для iOS и выключенна для Android (по крайне мере так ещё было 2-3 релиза тому назад, т.к. у андроидной версии IL2CPP был эксперементальный статус).
C++ код получается весьма специфический - там не сильно используются фишки C++, всё делаетс через статичекие методы, и сгенерённый код пестрит всякими служебными макросами, но в сопоставить куски кода сгенерённые на C++ с исходным C# скриптом вполне возможно, так что в случае бага, который проявляется только на iOS, но нет в редакторе, можно вполне результативно подебажится в XCode.
C Android я не сильно в курсе - в теории он теперь должен кушать "нативные" проекты, но не пробовал.