编程文汇

ECS:实体组件系统

#1

首先ECS这个名字,不要理解错了,“实体、组件、系统”这是三个独立又相互联系的名词。而不是“实体、组件”系统。

现实中的ECS

现实中的行业标准,大致有两个可以参考,前者是c#开发者采用最多的方案;后者是用c++17实现,过于激进,很多平台不支持c++17,估计是有人气、有人研究、没人用。

视频介绍

综合看来,只需要研究Entitas,就能弄明白ECS的原则,以及如何应用。

Entitas – ECS Architecture with Unity by Example – Unite Europe 2016

Unity Entitas
Entity GameObject->MonoBehavior… Entity->Component…
Component data + behavior data only
逻辑 直接写在 MonoBehavior 写在system

三种system

  • 初始化
  • UpdateSystem
  • ReactiveSystem

ecs1

实例中的system,可以看到用户输入、碰撞处理、渲染、移动等等逻辑都在这里实现,还可以实时禁用、启用。

Input的实现

碰撞

Component

ecs4

实例中的Component

0 Likes