нужна помощь по Unity: параметр не существует в текущем Construct Context - PullRequest
0 голосов
/ 09 апреля 2019

Я собирался попрактиковаться в создании 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;
    }
}

я ничего не ожидал, потому что яне закончил учебник.кто-нибудь знает почему?

1 Ответ

1 голос
/ 09 апреля 2019

скважина

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...