[英]List of different types in C# (Inventory system)
因此,我正在從頭開始使用C#在Unity3D中構建清單系統,並且遇到了以下問題:
我有三種類型的清單對象:
武器,設備和消耗品。
因此,例如:
// Weapon Class
class Weapon : Equipable
{
public int damage
}
// Equipment Class
class Equipment : Equipable
{
public EquipmentType equipmentType;
public enum EquipmentType {
Helmet,
Armor
}
}
// Consumable Class
class Consumable : Item
{
public ConsumableStat stat;
public int factor;
public enum ConsumableStat
{
Life,
Mana
}
}
// Equipable Class
class Equipable : Item
{
public int durability
}
// Item Class
class Item
{
public string name;
}
現在,玩家有了清單作為清單。
此列表應存儲武器,設備和消耗品
我試過了:
public List<T> inventory
但是我在控制台上收到以下錯誤:
找不到類型或名稱空間名稱“ T”。 您是否缺少using指令或程序集引用?
搜索了互聯網,但是找到了我認為這不是處理它的最正確方法的解決方案。
已經有人介入這個問題了嗎?
真正創建通用對象列表的最佳方法是什么?
C#和Unity3D對我來說是新的。 我是一位經驗豐富的Web開發人員,正在遷移到游戲開發。
附:對不起,英語不好,謝謝!
在類上設置列表時,您需要聲明一種類型,即您的public List<T> Inventory
-為了將所有這些內容存儲在一個列表中,它們需要具有共享的通用類型或接口。 我建議創建共享接口或基本類型。 在這種特定情況下,我認為基本類型最有意義。 例如:
public abstract Item
{
string Id { get; set; }
bool IsConsumable { get; }
/* etc. or whatever you use in all your classes */
{
這樣,您可以通過以下方式建立庫存清單:
public List<Item> Inventory;
無論是否滿足您的需求,您遇到的問題是您無法定義非類型的列表,並且需要所有庫存項目都具有共享的基本類型,以便創建列表最低公分母的 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.