Ошибка в 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". Но при прямом просмотре на этот объект говорит ошибку.