gpt4 book ai didi

c# - 如何从单独的类中提取字符串,同时将类保留在我的主(C#、Unity)的列表中

转载 作者:行者123 更新时间:2023-12-04 09:12:42 24 4
gpt4 key购买 nike

我觉得我应该在开头说,我仍然是一个初学者并且了解我,我很可能会忘记一些在过程中非常简单且过于复杂的事情。但无论如何,我一直无法弄清楚这一点。
我正在尝试创建一个统一的对话系统,该系统显示一串文本和一个 Sprite 。但是,我不确定如何从单独的类中提取字符串,同时确保我可以将类保留在列表中,以便我可以一起循环浏览文本和 Sprite 。目前,我试图从中提取的类(class)如下所示:

public class DialogueInfo
{
public Sprite emotion;
public string Words;
}
该列表如下所示:
public List<DialogueInfo> dialogueInfo = new List<DialogueInfo>();
我试图在这里使用“Words”字符串:
NPC.dialogLines = dialogueInfo.Words;
然而,这不起作用。我收到一条错误消息,指出“'List ' 不包含 'Words' 的定义并且没有可访问的扩展方法......”有什么建议吗?整个过程可能是一种非常糟糕的做事方式,如果是这样,我们将不胜感激。如果需要更多上下文,我很乐意提供。
注意:通过使用列表,我只是想保持一种看起来像这样的格式: Unity's formatting of a list/array but with both text and a sprite in a single element如果我必须使用不同的方法,那也没关系。

最佳答案

您的变量名 dialogInfo是误导。这不是 dialogInfo ,它是一个盒子(一个列表),里面有很多dialogInfo。
我们叫它dialogInfoList反而。

public List<DialogueInfo> dialogueInfoList = new List<DialogueInfo>();
提取所有单词
如果要获取所有元素的所有“单词”属性,可以使用 linq:
NPC.dialogLines = dialogueInfoList.Select(dialogInfo => dialogInfo.Words);
取决于 NPC.dialogueLines 的类型(例如列表),您可能需要添加 .ToList()Select() .
更简单:只需链接所有原始列表
你提到你可能会错过一些更简单的东西。
这真的取决于您想要实现的目标,问题不是很清楚,但是如何将所有“DialogInfo”列表与 NPC 对象一起保留呢?
就像是:
NPC.DialogueInfoList = dialogueInfoList;
DialogueInfoList作为 List<DialogueInfo> 类型的属性/字段

关于c# - 如何从单独的类中提取字符串,同时将类保留在我的主(C#、Unity)的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63321683/

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