我正在编写一个单元测试,每当用户按下'1'键时我需要调用函数“setMaterial”(见下文):
auto buttonPress = [this] {
for (int i = 0; i <= mMaterials.size(); i++)
{
mAcoustics->setMaterial(mMaterials[i]);
}
};
InputManager::bindKeyFunction(0x31 /* '1' key */, buttonPress, ETriggerEvent::OnRelease);
“mMaterials”是std::vector
,可以保存我的所有材料。
现在这是我想要的结果:
用户按'1':
mAcoustics->setMaterial(mMaterials[1]);
用户再次按'1':
mAcoustics->setMaterial(mMaterials[2]);
当它到达我的向量的最后一个元素时,它应该循环回到第一个元素并重新开始。
这样做的好方法是什么?
答案 0 :(得分:2)
将当前材料的索引保留为函数范围之外的变量,或将其作为参数传递给函数。
{{1}}