(Единство) Не ​​удается получить доступ к классу одновременно? - PullRequest
0 голосов
/ 27 мая 2020

У меня 2 метода

void InitializeSlot()
{
    if (hasItem)
    {
        ItemDatabase database = GameObject.Find("Inventory").GetComponent<ItemDatabase>();
        Item item = database.FetchItemById(itemId);

        Image image = transform.GetChild(0).gameObject.GetComponent<Image>();
        image.sprite = item.Sprite;
    }
}

И

void InitializeItem()
{
    ItemDatabase database = GameObject.Find("Inventory").GetComponent<ItemDatabase>();
    Item item = database.FetchItemById(itemId);
    itemId = item.Id;
}

Ошибка:

NullReferenceException: Object reference not set to an instance of an object

Во втором методе на itemId = item.Id;

Это действительно странно. Почему-то я не могу получить доступ к компоненту ItemDatabase одновременно из разных классов.

Впервые я получил ошибку в строке image.sprite = item.Sprite;.

Перезапустил Unity, теперь это строка itemId = item.Id; .

Оба метода вызываются по адресу void Start(), но не могут работать вместе. Почему?

FetchItemById

public Item FetchItemById(int id)
{
    for (int i = 0; i < database.Count; i++)
    {
        if (database[i].Id == id)
        {
            return database[i];
        }
    }
    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...