在unity中,大家更倾向于C#是一种脚本语言。这种脚本是运行在播放器这个宿主之上的。这就类似与JavaScript运行于浏览器之上。JavaScript离开了浏览器是不能运行的。
(这里不包括特殊情况比如node.js,windows宿主js等)
所谓脚本,就是不编译成本地机器代码(包括java字节码、汇编等),而是由宿主直接负责解释,即游戏播放器负责解释,这就让C#与安卓系统很少发生关系。
如果理解不了什么是播放器,就想想音乐播放器、视频播放器,更加贴切的是早年的flash播放器。flash播放器是可以播放游戏的。鼠标、键盘操作,脚本,都是在和播放器打交道。
这个unity播放器,既可以运行于windows,也可以运行于安卓、iOS、浏览器。unity游戏,如何与安卓系统交互,这是unity负责的事。C#只负责通过脚本形式执行游戏逻辑。
注:上面的讨论只是一种简化,实际过程比这复杂,比如虽说是C#脚本但还是要涉及一些编译工作,还有打包、压缩工作。