Java可以应用到Unity引擎当中吗?
java不太适合unity引擎或者说java不适合游戏开发:
Java不具备脚本特性。很多游戏的逻辑层是用脚本或者胶水语言写的。这是因为游戏的核心架构是一个类似实时模拟器的系统。绝大多数引擎都把每个单元封装成一个module。对于每一个module的代码都用脚本来写,方便新增和删除。但是Java的语法繁琐,面向对象逻辑结构深,不太适合脚本化。
Java作为静态语言,内存控制较弱。这一点其实并不主要。因为大多数引擎都是C++底层,上层用脚本。所以Java对内存控制弱的部分当然也可以用C++控制。但是Java脚本性,语言表达能力的不足,Java作为上层语言太繁琐,作为下层语言对内存控制能力不如C++。
Java的跨语言能力较弱。现代化语言都有Foreign language interface用于跨语言交互。其主要都是C接口。然后Java在这方面的能力不算非常多,这就导致了Java不太方便Host其他语言。
最重要一点,Java语言表达能力低。Java当然是个好语言,而且设计非常严谨。严谨的好处是大型企业应用更健壮,坏处是表达能力太弱。在游戏中,矩阵向量运算是最最最最频繁的运算之一。不支持算符重载的Java,相信我,写不超过100行代码你就会崩溃。