gpt4 book ai didi

c# - 如何在 C# 中使用按键遍历列表

转载 作者:行者123 更新时间:2023-12-04 08:13:06 25 4
gpt4 key购买 nike

我可能想得太多了,但我正在尝试获取我已有的列表,然后通过按键一个接一个地浏览列表。

例如,我在一个列表中有三个字符串,当玩家按 L 时,它从选项 1 转到 2。然后 2 到 3。然后 3 到 1。我还需要将此选项保存到一个单独的字符串.

感谢任何能提供帮助的人

编辑:

所以我有一个脚本可以检查他们的键是否被按下

private void Update()
{
if (Input.GetKeyDown(KeyCode.L))
{
gs.ChangeLevel(levelTxt);
}

}

然后在不同的脚本上,我有将更改选项的功能。我知道这是不正确的,但希望您能够看到我正在尝试做的事情

    public List<String> levels;
public string level;

public void ChangeLevel()
{
level = levels.Count[]++;

if(levels.Count > levels.Count)
{
levels.Count[0];
}

}

Edit #2


So I have almost got it with help from the comments. I just need it to increment now (if this is suppose to it will only stay on the first one)

```
public string IncrementLevel()
{
if (levels.Count == 0)
{
levelIndex = 0;
return "";
}

levelIndex = (levelIndex >= levels.Count - 1) ? 0 : levelIndex++;
return levels[levelIndex];

}


public void ChangeLevel(Text level)
{
level.text = levels[levelIndex].ToString();
Debug.Log("It is now set to " + levels[levelIndex]);
}

编辑#3

大家好,评论中共享的代码有所帮助,但现在我需要使用不同的按钮来减少它。任何帮助将不胜感激。

最佳答案

我不确定我们是否处于同一波长,但是,如果您只想迭代一个列表,那么您需要一个指针。您可以创建一个函数来递增指针并将值全部弹出。

private List<string> levels = new List<string>();
private int levelIndex = -1;

public string IncrementLevel()
{
levelIndex = (levels.Count == 0) ? -1 : (levelIndex >= levels.Count - 1) ? 0 : levelIndex + 1;
return (levelIndex == -1) ? "" : levels[levelIndex];
}

public string DecrementLevel()
{
levelIndex = (levels.Count == 0) ? -1 (levelIndex <= 0) ? levels.Count - 1 levelIndex - 1;
return (levelIndex == -1) ? "" : levels[levelIndex];
}

private void Update()
{
if (Input.GetKeyDown(KeyCode.L))
{
gs.ChangeLevel(IncrementLevel());
}
}

关于c# - 如何在 C# 中使用按键遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65851931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com