unity一定要作为某个东西的BaseEntity吗,比如我有一个Enemy,是一定要在Unit上挂Enemy,还是可以在Enemy上挂Unit
为什么要 enemy 挂 Unit。
hualin 因为他是enemy,并且有一个Transform
你可能没有弄清楚Enemy和Unit的关系。对于Unit而言,enemy只是一个unit的种类。Unit可以是Enemy、Player、Robot只需要一个枚举就能把unit变成对应的角色。至于Enemy还是player自有的特性,只需要为其加上EnemyComponent或者PlayerComponent就能区别开来
7gxz 那也就是说他先是一个Unit,其次才是一个挂了Enemy组件的Unit。 而不是有一个Enemy的实体,然后他有Unit这个功能
7gxz playerUnit又分了很多英雄选择之类的细分, 也是通过枚举分配不同的组件吗, 这样就成了一个树型结构了
Unit只是一个空的载体,它可以是人也可以是动物也可以是建筑,而Enemy、Player只是对Unit的一个修饰,把unit划分阵营,所以只需要在Unit里加入一个枚举就可以将unit标记出来。而相应的Enemy和Player有各自的功能,这功能就是用不同的组件来实现。比如Player应该有一个摇杆组件来实现操作。Enmey的组件应该是一个AI组件。简而言之就是在Unit中加字段来“标记”Unit“是什么”,然后根据Unit是什么来添加获取Unit所特有的组件。然后再调用其功能。
7gxz Unit本身有带一个字段,叫做Type。可以用作unit类型的区分