需要有关 Unity 的帮助:当前 Construct Context 中不存在参数
need help on Unity: parameter doesn't exist in current Construct Context
本来想练习如何创建Inventory的,但是好像不会从其他脚本中读取参数。我正在根据我的教程进行培训,代码如下:
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;
}
}
我没有期待任何事情,因为我还没有完成教程。有人知道为什么吗?
很好
InventoryCatalogue.Instance.AddMaterialToCatalogue(new ItemStack(FoodMaterial, amount));
你打电话
new ItemStack(FoodMaterial, amount)
使用参数 FoodMaterial, amount
,但您的 ItemCatalogue
class 或方法 GetItem
包含任何具有这些名称的 variables/fields/properties。
您更愿意在其中传递一些值,例如
// 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));
本来想练习如何创建Inventory的,但是好像不会从其他脚本中读取参数。我正在根据我的教程进行培训,代码如下:
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;
}
}
我没有期待任何事情,因为我还没有完成教程。有人知道为什么吗?
很好
InventoryCatalogue.Instance.AddMaterialToCatalogue(new ItemStack(FoodMaterial, amount));
你打电话
new ItemStack(FoodMaterial, amount)
使用参数 FoodMaterial, amount
,但您的 ItemCatalogue
class 或方法 GetItem
包含任何具有这些名称的 variables/fields/properties。
您更愿意在其中传递一些值,例如
// 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));