[英]How do I get access to getters and setters from a separate class to the main class(with downcasting in C#)
[英]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;
DialogueInfoList
是List<DialogueInfo>
類型的屬性/字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.