ECS

ET是基于ECS概念设计的框架,ECS是Entity-Component-System的缩写,即实体-组件-系统。

与传统的面向对象编程(Object Oriented Programming)相比,ECS模式遵循组合大于继承的原则,游戏中每一个物件都是一个实体Entity(ET的Entity实际上是继承自ComponentWithId,而ComponentWithId又是继承自Component。

所以个人认为ET的每一个实体Entity实际上就是一个拥有自己的唯一ID的Component),如玩家,药水,装备,每个实体(Entity)又由一个或多个组件(Component)构成;组件(Component)代表实体的属性或者说是功能。比如说玩家需要移动,就给他添加一个移动组件,药水可以在背包中被拖拽,就给他添加一个拖拽组件,而游戏中的一个物体往往存在多个功能,物体与物体之间可能存在相同的功能,ECS模式把这些相同的功能单独剥离出来,与实体自由组合,实现代码的复用。而传统的设计思想往往都是把实体间的共性提炼出来作为一个基类,通过继这个承基类在每一种类型的实体中继续提炼出共性,一旦基类中增加或删除某个字段,可能要影响到所有派生类,影响到所有派生类相关的逻辑;如果需要对逻辑作出修改,要么重新实现,要么继承基类进行覆盖,有时候为了实现一个简单的功能却继承了一个十分庞大的类,导致许多不必要性能开销;这是ECS相对于面向对象的优势。

Mono

IL2CPP

ILRuntime

© kktoo.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-10-20 15:16:18

results matching ""

    No results matching ""