首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flatbuffers模式:联合向量

Flatbuffers模式:联合向量
EN

Stack Overflow用户
提问于 2017-04-27 20:15:56
回答 1查看 2.1K关注 0票数 2

我在尝试联合向量时得到了这个错误。

代码语言:javascript
复制
error: Vectors of unions are not yet supported in all the specified 
programming languages.

显然,平面缓冲区不支持联合向量。所以我需要另一种数据类型来解决我的问题。这是我的案子:

使用模型实体组件系统(ECS),我有3个实体和3个组件,如下所示

代码语言:javascript
复制
EntityA            EntityB            EntityC
    component1        component1        component3
    component3        component2

如果我可以使用联合向量,模式如下所示

代码语言:javascript
复制
union Components { Component1, Component2, Component3 }

table Update {
    component:[Components];
}

其中ComponentN是表。实际上,我有一个没有联合向量的解。

代码语言:javascript
复制
table Update {
    component1:[Component1];
    component2:[Component2];
    component3:[Component3];
}

但是,当组件列表增加时,就变得难以管理了。

对不起,我正在使用ECS,这实际上是用于游戏开发。但这不是比赛的问题,所以我认为这是问这类问题的合适地方。

如何解决这一问题,没有工会的代表,比上面的解决方案更好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-27 20:39:19

是的,联合向量是一个新特性(几周前添加的),到目前为止只在C++中可用。

传统的方法是创建一个table Component { c:Components; }来包装联合值,然后利用它们生成一个[Component]

如果组件的数量很高,使用多个向量确实会变得效率低下。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43667158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档