Ошибка в Unity: "Object referense not set to an instance of a object"

Создаю инвентарь по гайду в youtube, все корректно переписано, но при попытке подобрать предмет выходит ошибка "Object referense not set to an instance of a object". Строка ошибки 24 по словам консоли.

Код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Inventar : MonoBehaviour
{
    List <Item> list;
    public GameObject inventory;
    public GameObject cont;
    // Start is called before the first frame update
    void Start()
    {
      list = new List<Item>();


    }

    // Update is called once per frame
    void Update()
    {
      if (Input.GetMouseButtonUp (1))
              {
                  Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                  RaycastHit hit;
                  if (Physics.Raycast(ray, out hit))
                  {
                      Item item = hit.collider.GetComponent<Item>();
                      if (item != null)
                      {
                          list.Add(item);
                          Destroy(hit.collider.gameObject);
                      }
                  }
              }
              if(Input.GetKeyDown (KeyCode.Tab)) {
                if(inventory.activeSelf) {
                  inventory.SetActive(false);
                }
                else {
                  inventory.SetActive(true);
                  int count = list.Count;
                  for (int i = 0; i< count; i++) {
                    Item it = list[i];
                    if(inventory.transform.childCount>=0) {
                      GameObject img = Instantiate(cont);
                      img.transform.SetParent(inventory.transform.GetChild(i).transform);
                      img.GetComponent<Image>().sprite = Resources.Load<Sprite>(it.icon);
                      img.AddComponent<Button>().onClick.AddListener(()=>remove(it, img ));
                    }
                    else
                      break;
                  }
                }

                void remove(Item it, GameObject obj) {
                    GameObject newo = Instantiate<GameObject>(Resources.Load<GameObject>(it.prefab));
                    newo.transform.position = transform.position = transform.forward + transform.up;
                    list.Remove(it);
                    Destroy(obj);
                }
              }

    }
}

Кстати да, предмет специально подстроен под инвентарь путем добавления скрипта "Item.cs". Но при прямом просмотре на этот объект говорит ошибку.


Ответы (0 шт):