如何将变量设置为列表的索引成员

本文关键字:列表 索引 成员 设置 变量 | 更新日期: 2023-09-27 18:00:27

我正在尝试为玩家消息和提示创建一个消息队列。目标是游戏中的任何对象都可以添加要显示的项目,并且它应该处理请求。仅供参考-在编码/c#方面,我几乎是个傻瓜,所以现在只是想了解概念和语法,所以我的整个方法一开始可能是错误的!

我决定用一份清单来做。

List<GoalMessage> goalMessagesList = new List<GoalMessage>();
public static class GoalMessage : IComparable<GoalMessage>{
    public string textToShow;
    public int durationToShow;
    public bool specialFX;
    public GoalMessage (string myTextToShow, int myDurationToShow, bool mySpecialFX)
    {
        textToShow = myTextToShow;
        durationToShow = myDurationToShow;
        victoryFX = mySpecialFX;
    }
}

然后我在列表中创建一些测试条目:

void Start () {
    goalMessagesList.Add(new GoalMessage("List Item 1",2,false));
    goalMessagesList.Add(new GoalMessage("List Item 2 + FX",2,true));
    goalMessagesList.Add(new GoalMessage("List Item 3",2,false));
    goalMessagesList.Add(new GoalMessage("List Item 4 + FX",2,true));
    goalMessagesList.Add(new GoalMessage("List Item 5",2,false));
    goalMessagesList.Add(new GoalMessage("List Item 6 + FX",2,true));
}

在更新中,我试图获取列表的第一个成员,将其放入我的文本显示处理程序中,因此它是一个FIFO风格的处理程序。

void Update () {
    if (textOn){
        break;
    }
    else if (goalMessagesList.Count>0){
    tempListItemToShow = goalMessagesList.FindIndex(0); //// ARGH - LOST HERE! /////
    }
    StartCoroutine(TextHandler (tempListItemToShow.textToShow, tempListItemToShow.durationToShow, tempListItemToShow.specialFX));
    goalMessagesList.RemoveAt(0);
}

问题是,我如何获得列表的第一个成员,然后引用针对它存储的变量,以便使用它们?

如何将变量设置为列表的索引成员

列表中的第一个成员将是goalMessagesList[0]goalMessagesList.First()goalMessagesList.FirstOrDefault()

要获取变量,只需执行:

string tts = goalMessagesList[0].textToShow;
int dts = goalMessagesList[0].durationToShow;
bool sfx = goalMessagesList[0].specialFX;