如何解决基于模板参数而非争论的多类型填充数据
我正在尝试开发基本的ECS,目前正在研究视图 到目前为止,我有
//Grabs a ECSView (underlying vector of tuples) of components in the scene of Type T
ECSView<ComponentType> view a = m_Scene.View<ComponentType>();
//usage example TransformComponent
ECSView<TransformComponent> transformView = m_ECSEntityRegistry.View<TransformComponent>();
如何扩展此功能以在模板中采用多种类型。即返回元组中的组件(都连接到实体),我不知道如何收集数据。我可以设置ECSView并运行,但是我不知道是否可以遍历模板的类型?
//For example
ECSView<TransformComponent,MeshRenderer> transformView = m_ECSEntityRegistry.View<TransformComponent,MeshRenderer>();
这是我的代码
template<typename ...Types>
ECSView<Types...> View()
{
//works
ECSView<Types...> view;
//FOREACH TYPE IN TYPES
//collect the data and add to the view
//when done
//the underlying vec of tuples would be
[0] -> std::tuple<TransformComponent,MeshRenderer>
[1] -> std::tuple<TransformComponent,MeshRenderer>
....
return view;
}
我的ECSView供参考
template<class... Types>
class ECSView
{
public:
//*******
std::vector< std::tuple<Types*...>> sets;
//*******
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。