通过按钮列表上的列表递增

时间:2014-03-17 14:28:56

标签: c# list

我在程序中存储了一系列颜色。我在场景中的一个对象后面是列表中的一种颜色。到目前为止,我已经完成了以下工作:

if(Input.GetKeyDown(KeyCode.O))
{
    for(int i = 0; i < claddingColor.Count; i++)
    {
        claddingMaterial.color = claddingColor[i];
    }
}

由于我所知道的原因(你可能会发现),这是行不通的,但是我缺乏写下来的口头毅力。

与以下多行相反:

claddingMaterial.color = claddingColor[0];

每个按钮都绑在不同的按钮上,我喜欢这种方式,我可以模仿上面的按钮,但将它绑在一个按钮上。因此,如果我按下0按钮5次,它将循环遍历列表中存储的每种颜色。如果我第六次点击它,它将返回到列表中的第一种颜色。

有人可以帮我实现吗?或者指出一些我可以学习如何为自己做的事情?

2 个答案:

答案 0 :(得分:1)

将LastColor属性定义为类成员:

int LastColor;

在你的函数中使用modulo

if(Input.GetKeyDown(KeyCode.O))
{
    claddingMaterial.color = claddingColor[(LastColor++) % claddingColor.Count];
}

注意:根据cladColor的类型,使用Count表示List或Length表示数组。

答案 1 :(得分:0)

您不需要for循环

int lastStep = 0;

if(Input.GetKeyDown(KeyCode.O))
{
    claddingMaterial.color = claddingColor[lastStep++];
    if (lastStep == claddingColor.Count)
        lastStep = 0;
}
相关问题