教育培训 > 请问android上的软件是用java语言开发的,游戏引擎用unity 3D,语

请问android上的软件是用java语言开发的,游戏引擎用unity 3D,语

2020-08-31 18:13阅读(64)

请问android上的软件是用java语言开发的,游戏引擎用unity 3D,语言是C#怎么做软件?:你可以这样理解,unity是一个播放器,英文叫player——game player。游戏是

1

你可以这样理解,unity是一个播放器,英文叫player——game player。游戏是运行在播放器之上的。

在unity中,我们更倾向于C#是一种脚本语言。这种脚本是运行在播放器这个宿主之上的。这就类似与JavaScript运行于浏览器之上。JavaScript离开了浏览器是不能运行的。

(这里不包括特殊情况比如node.js,windows宿主js等)

所谓脚本,就是不编译成本地机器代码(包括java字节码、汇编等),而是由宿主直接负责解释,即游戏播放器负责解释,这就让C#与安卓系统很少发生关系。

如果理解不了什么是播放器,就想想音乐播放器、视频播放器,更加贴切的是早年的flash播放器。flash播放器是可以播放游戏的。鼠标、键盘操作,脚本,都是在和播放器打交道。

这个unity播放器,既可以运行于windows,也可以运行于安卓、iOS、浏览器。unity游戏,如何与安卓系统交互,这是unity负责的事。C#只负责通过脚本形式执行游戏逻辑。

注:上面的讨论只是一种简化,实际过程比这复杂,比如虽说是C#脚本但还是要涉及一些编译工作,还有打包、压缩工作。

2

C#可以做各种网站系统,可以做安卓和iOS半原生应用,可以做Unity3D游戏,可以做Windows服务和桌面应用,可以做Linux服务和桌面应用,可以做MacOS服务和桌面应用。你能想到的它都可以做,只是它要钱,而且还不便宜

3

android底层不是用Java开发的。安卓内核是Linux系统,Linux系统是用c语言开发的。只是在安卓上跑了一个JVM (Java虚拟机), Jvm提供一个标准的接口来供上层应用调用。Java虚拟机上的应用程序原则上来说,用任何程序语言来开发都可以,比如Java c# kotlin,go等,只是说用Java开发起来最顺手而已。

4

此时的c#是在unity这个游戏引擎提供的沙盒环境里运行,不直接调用安卓系统资源。

5

u3d以前支持javasctipt语言,现在不知道支不支持了