It does not work removing items from the inventory
I tried to do inventory on the video 
https://www.youtube.com/watch?v=Y-OpWcRhgJ0 
Almost all the works except the removal of items from the inventory. 
When finished writing all of the code tried to run everything worked, only I did not have the correct path to the scope of prefabs, after correcting things ceased to be ejected, I have repeatedly rechecked code overwrites all over again - but the problem persists. 
My code:
 using UnityEngine;
     using System.Collections;
     using System.Collections.Generic;
     using UnityEngine.UI;
 
     public class Inventory: MonoBehaviour {
 
     List <Item> list;
     public GameObject inventory;
     public GameObject container;
 
 // Use this for initialization
 void Start () {
             list = new List <Item> ();
 }
 
 // Update is called once per frame
 void Update () {
             if (Input.GetMouseButtonUp (1))
             {
             Ray ray = new Ray (transform.position, transform.forward);
             RaycastHit hit;
                 if (Physics.Raycast (ray, out hit, 5.0F))
                 {
                 Item item = hit.collider.GetComponent <Item> ();
                     if (item! = null)
                     {
                     list.Add (item);
                     Destroy (hit.collider.gameObject);
                     }
                 }
             }
             if (Input.GetKeyUp (KeyCode.I))
             {
                 if (inventory.activeSelf)
                 {
                 inventory.SetActive (false);
                 for (int i = 0; i <inventory.transform.childCount; i ++) {
                         if (inventory.transform.GetChild (i) .transform.childCount> 0)
                         {
                         Destroy (inventory.transform.GetChild (i) .transform.GetChild (0) .gameObject);
                         }
                     }
                 }
                 else
                 {
                 inventory.SetActive (true);
                 int count = list.Count;
                 for (int i = 0; i <count; i ++) {
                     Item it = list [i];
                     if (inventory.transform.childCount> = i)
                         {
                         GameObject img = Instantiate (container);
                         img.transform.SetParent (inventory.transform.GetChild (i) .transform);
                         img.GetComponent <Image> (). sprite = Resources.Load <Sprite> (it.sprite);
                         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;
         Destroy (obj);
         list.Remove (it);
         }
     }
 
 
               Settings main script 
Script parameters on which the cube 
Script parameters that on the sphere 
Your answer
 
             Follow this Question
Related Questions
Editing animation curves in a script 2 Answers
Having trouble deleting objects from a list after they reach a certain scale. 0 Answers
How To refer to other Object's Components ? 0 Answers
How attach C# script by argument? 3 Answers
What is the most effective way to structure Card Effects in a Single Player game? 1 Answer