我在尝试联合向量时得到了这个错误。
error: Vectors of unions are not yet supported in all the specified
programming languages.显然,平面缓冲区不支持联合向量。所以我需要另一种数据类型来解决我的问题。这是我的案子:
使用模型实体组件系统(ECS),我有3个实体和3个组件,如下所示
EntityA EntityB EntityC
component1 component1 component3
component3 component2如果我可以使用联合向量,模式如下所示
union Components { Component1, Component2, Component3 }
table Update {
component:[Components];
}其中ComponentN是表。实际上,我有一个没有联合向量的解。
table Update {
component1:[Component1];
component2:[Component2];
component3:[Component3];
}但是,当组件列表增加时,就变得难以管理了。
对不起,我正在使用ECS,这实际上是用于游戏开发。但这不是比赛的问题,所以我认为这是问这类问题的合适地方。
如何解决这一问题,没有工会的代表,比上面的解决方案更好?
发布于 2017-04-27 20:39:19
是的,联合向量是一个新特性(几周前添加的),到目前为止只在C++中可用。
传统的方法是创建一个table Component { c:Components; }来包装联合值,然后利用它们生成一个[Component]。
如果组件的数量很高,使用多个向量确实会变得效率低下。
https://stackoverflow.com/questions/43667158
复制相似问题