// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.E)) { 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.GetKeyUp(KeyCode.I)) { if (inventory.activeSelf) { craft.activate(false); 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 { craft.activate(true); 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.GetComponent <Drag>().item = it; } else { break; } } } } }
// 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>(); // получаем наш item if (item != null) // если есть компонент Item на объекте на который кликнули , значит он подбираемый { list.Add(item); // добавляем в лист hit.collider.gameObject.SetActive(false); // делаем скрытым так как в массив засовывается ссылка на объект. // хз пока как правильно сделать // Destroy(hit.collider.gameObject); // удаляем со сцены } } } // показываем инвентарь if (Input.GetKeyDown(KeyCode.I)) { if (inventory.activeSelf) { craft.activate(false);// скрываем панельку крафта 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); craft.activate(true);// показываем панельку крафта // инициализируем инвентрь int count = list.Count; // кол-во вещей в инвенторе for (int i = 0; i < count; i++) { Item current_item = list[i]; if (inventory.transform.childCount >= i) // если количество детей в инвенторе больше инвенторя { GameObject img = Instantiate(inventory_cell_container); // создаём объект (из префаба) // делаем дочерним нашей ячейки. //чтобы сделать дочерним один элемент ко второму - надо сделать дочерний их трансформ img.transform.SetParent(inventory.transform.GetChild(i).transform); //добавляем иконку. img.GetComponent <Image>().sprite = Resources.Load <Sprite>(current_item.sprite); // выкидываем предмет // img.AddComponent<Button>().onClick.AddListener(() => remove_item(current_item, img)); img.GetComponent <Drag>().item = current_item; } else { break; } } } } }