在unity里,都是面对对象的编程
而ecs框架,是面向组件的编程
ecs框架
实体Entity:是一个ID,用于组件的间接查找,用于在容器里遍历,相当于是unity里的对象
ComponentData 组件数据:用于存放组建里的数据
ComponentSystem 组件系统:用于存放逻辑的地方
Group组:组件系统运行所需的ComponentData列表,相对于判断条件
简单的demo
1.首先创建Component用于存放数据且继承于IComponent
内容很简单,唯一要注意的是[Game]标签与继承IComponent类。每次写好Component记得按一下生成按钮(快捷键Ctrl + Shift + G),之后我们可以注意到生成代码目录下的Game/Components目录中有了GameDebugMessageComponent。 点开来看看,仅仅只是GameEntity和GameMatcher的局部类用来对DebugMessageComponent进行获取,这就是为什么一定要有[Game]的原因,如果写了[Input]那对应的肯定就是InputEntity和InputMatcher的局部类。
- 编写处理Component的方法没错,方法,在ECS框架中,处理每一个Component的是System,System本身是一个Collector的子类,拥有过滤Entity、并执行的作用。