Итак, у меня есть пользовательский скрипт, который содержит список инвентаря. Затем я использую общедоступного статического пользователя для доступа к информации об одном пользователе на протяжении всей игры.
Проблема в том, что в какой-то момент я теряю ссылку на этот инвентарь.
В активной функции, если я вызываю Debug.Log (User.user.inventory.Count), она печатает 0.
однако, если я пытаюсь получить доступ к этому инвентарю в любое время в будущем, я получаю ошибку Null Reference, как будто она не существует и не может добавить к ней.
Если я сделаю размер списка в инспекторе равным 1, то он каким-то образом существует, и я могу добавлять к нему вещи навсегда, однако тогда у меня будет мертвая точка с индексом 0.
private void AddItemToInventory(ItemObject item, Image uiSprite)
{
User.user.inventory.Add(item);
uiSprite.sprite = GenerateOrbRaritySprite(RaritySprites.raritySprites, item.rarity);
uiSprite.enabled = true;
}
При поиске в инвентаре происходит сбой, хотя я вижу это в инспекторе в порядке.
Мой пользователь имеет следующую функцию Awake (), чтобы он оставался между сценами:
void Awake()
{
if(user == null)
{
user = this;
DontDestroyOnLoad(gameObject);
}
else if (user != this)
{
Destroy(gameObject);
}
}
Есть идеи? Спасибо!