Skip to content

解答疑惑

Unity到底是C#引擎还是C++引擎?

答案是:Unity本质上是一个C++引擎,C#只是脚本层。

为什么Unity选择这种架构?

早期游戏引擎几乎都是全部C++实现的

因为:

  1. 性能高:例如: Renderer Physics Animation 每秒执行几百万次。 必须用C++。
  2. 跨平台方便:Unity需要支持: Windows Mac Linux Android iOS PS5 Xbox Switch 底层平台接口基本都是: DirectX Vulkan Metal OpenGL 所以必须C++。
  3. 开发效率高:
csharp
class Player : public Actor
{
};

学习成本太高。

Unity希望:

public class Player : MonoBehaviour
{
}
几分钟就能上手。

因此:

引擎 = C++
业务 = C#

流程图

其他引擎的架构方式?

自研引擎

与Unity引擎架构方式类似

  1. 引擎层
  2. 业务层

自研引擎C++实现,业务用Python或者Lua/TypeScripts

有些大厂其实是魔改虚幻引擎、Unity、Cocos等知名的引擎

虚幻引擎

  1. 引擎层:C++
  2. 业务层:Lua / TypeScripts