我本打算练习如何创建清单,但它似乎不会读取其他脚本中的参数。我正在根据我的教程进行培训,代码如下:
public class ItemCatalogue : MonoBehaviour
{
public Items[] AvailableItems;
public Text DisplayArray;
public void GetItem()
{
Items item = AvailableItems[Random.Range(0, AvailableItems.Length)];
InventoryCatalogue.Instance.AddMaterialToCatalogue(new ItemStack(FoodMaterial, amount));//weird, the parameter doesn't exist
DisplayArray.text = item.name;
}
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
}
}
下面是另一个脚本:
[System.Serializable]
public class ItemStack
{
public Items FoodMaterial;
public int amount;
public ItemStack(Items FoodMaterial, int amount) //here's the parameter
{
this.FoodMaterial = FoodMaterial;
this.amount = amount;
}
}
我没有期望任何东西,因为我还没有完成教程。有人知道为什么吗?
发布于 2019-04-09 08:46:18
好的在
InventoryCatalogue.Instance.AddMaterialToCatalogue(new ItemStack(FoodMaterial, amount));
你打电话给
new ItemStack(FoodMaterial, amount)
使用参数FoodMaterial, amount
,但您的ItemCatalogue
类或方法GetItem
包含任何具有这些名称的变量/字段/属性。
您必须在其中传递一些值,例如
// I don't know what you want to pass in as amount
new ItemStack(item, 1)
所以
Items item = AvailableItems[Random.Range(0, AvailableItems.Length)];
InventoryCatalogue.Instance.AddMaterialToCatalogue(new ItemStack(item, 1));
https://stackoverflow.com/questions/55588303
复制相似问题