问题描述
我正在尝试开发基本的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 (将#修改为@)