簡體   English   中英

如何從單獨的 class 中提取字符串,同時將 class 保留在我的主列表中(C#,Unity)

[英]How can I pull a string from a separate class while keeping the class in a list in my main (C#, Unity)

我覺得我應該先說,我仍然是一個初學者並且了解我,我很可能會忘記一些在這個過程中非常簡單和過於復雜的東西。 但盡管如此,我一直無法弄清楚這一點。

我正在嘗試創建一個統一的對話系統,顯示一串文本和一個精靈。 但是,我不確定如何從單獨的 class 中提取字符串,同時確保我可以將 class 保留在列表中,以便我可以一起循環瀏覽文本和精靈。 目前我試圖從中提取的 class 看起來像這樣:

public class DialogueInfo
{
    public Sprite emotion;
    public string Words;
}

該列表如下所示:

public List<DialogueInfo> dialogueInfo = new List<DialogueInfo>();

我正在嘗試在這里使用“Words”字符串:

NPC.dialogLines = dialogueInfo.Words;

然而,這不起作用。 我收到一條錯誤消息,說“'List<dialogueHolder.DialogueInfo>' 不包含 'Words' 的定義並且沒有可訪問的擴展方法......”有什么建議嗎? 整個過程可能是一種非常糟糕的做事方式,如果是這樣,我們將不勝感激。 如果需要更多上下文,我很樂意提供。

注意:通過使用列表,我只是想保持如下所示的格式: Unity 的列表/數組格式,但在單個元素中同時包含文本和精靈如果我必須使用不同的方法,那沒關系。

您的變量名dialogInfo具有誤導性。 它不是一個dialogInfo ,它是一個盒子(一個列表),里面有很多 dialogInfo 。

讓我們將其dialogInfoList

public List<DialogueInfo> dialogueInfoList = new List<DialogueInfo>();

提取所有單詞

如果要獲取所有元素的所有“單詞”屬性,可以為此使用 linq:

NPC.dialogLines = dialogueInfoList.Select(dialogInfo => dialogInfo.Words);

根據NPC.dialogueLines的類型(例如 List),您可能需要在Select() .ToList() ) 。

更簡單:只需鏈接所有原始列表

你提到你可能會錯過一些更簡單的東西。

這真的取決於你想要實現什么,這個問題不是很清楚,但是用NPC object 保留所有“DialogInfo”列表怎么樣?

就像是:

NPC.DialogueInfoList = dialogueInfoList;

DialogueInfoListList<DialogueInfo>類型的屬性/字段

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM