【问题标题】:Cannot convert Datatypes from-to无法转换数据类型
【发布时间】:2022-02-22 17:28:48
【问题描述】:

我有一个名为 DisplayInventory 的类

字典 itemsDisplayed = new 字典();

itemsDisplayed.Add(inventory.Container[i], obj);

代码在这一行 (inventory.Container[i]) 中断,因为它 无法转换(字段)列表 InventoryObject.Container。


这是我的 InventoryObject 类

公共类 InventoryObject : ScriptableObject { 公共列表容器=新列表(); 公共无效 AddItem(ItemObjectData _item,int _amount) { 布尔 hasItem = false; for (int i = 0; i

}

[System.Serializable] 公共类 InventorySlot { 公共 ItemObjectData 项; 公共整数; 公共 InventorySlot(ItemObjectData _item,int _amount) { 项目 = _项目; 金额=_金额; }

public void AddAmount(int value)
{
    amount += value;
} }

【问题讨论】:

  • 一个忠告朋友,你应该重新格式化你的代码和问题,以便清楚地回答你的问题所需要的每一个信息,否则,人们很忙,没有人会费心去猜测你的意思

标签: unity3d


【解决方案1】:

缺少您声明库存变量或特别是inventory.container 的部分。 或者这是来自 InventoryObject 类的容器?

您需要 Dictionary 的特定类型 InventoryObject。 你给它的只是你放在容器中的一个 List 对象。 如果您从 InventoryObject 类中引用容器,它实际上只是您持有的 List()。

在这种情况下,字典只需要库存作为输入。

或者你可以改变

public List Container = new List();

到这里

public List<InventoryObject> Container = new List<InventoryObject>();

如果这个容器在 InventoryObject 之外并且在 Inventory 类或其他东西中,这仍然更有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多