bil*_*ani 2 schema flatbuffers
尝试联合向量时出现此错误
error: Vectors of unions are not yet supported in all the specified
programming languages.
Run Code Online (Sandbox Code Playgroud)
显然,flatbuffers不支持联合向量。所以我需要另一种数据类型来解决我的问题。这是我的情况:
使用模型实体组件系统(ECS),我有3个实体和3个组件,这是结构
EntityA EntityB EntityC
component1 component1 component3
component3 component2
Run Code Online (Sandbox Code Playgroud)
如果我可以使用联合向量,则架构如下所示
union Components { Component1, Component2, Component3 }
table Update {
component:[Components];
}
Run Code Online (Sandbox Code Playgroud)
其中Component [N]是表。实际上我有一个没有联合向量的解决方案
table Update {
component1:[Component1];
component2:[Component2];
component3:[Component3];
}
Run Code Online (Sandbox Code Playgroud)
但是,当组件列表增加时,它变得难以管理。
抱歉,我正在使用ECS,这实际上是用于游戏开发。但这与游戏无关,所以我认为这是提出此类问题的正确位置。
没有联合向量并且如何解决上述问题,如何解决呢?
是的,联合向量是一项新功能(仅在几周前添加),到目前为止仅在C ++中可用。
传统方法是创建一个table Component { c:Components; }包装并集值的值,然后从中取值[Component]。
如果组件数量很多,使用多个向量实际上可能会变得效率低下。