using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class Inventory : MonoBehaviour { List list; public GameObject inventory; public GameObject container; // Use this for initialization void Start() { list = new List(); } // 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(); 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().sprite = Resources.Load(it.sprite); img.AddComponent().onClick.AddListener(() => remove(it, img)); } else break; } } } } void remove(Item it, GameObject obj) { GameObject newo = Instantiate(Resources.Load(it.prefab)); newo.transform.position = transform.position + transform.forward + transform.up; Destroy(obj); list.Remove(it); } }
@alexgame64625 жыл бұрын
у меня у одного onClick.AddListener подсвечен красным???
@Dawin4e7 жыл бұрын
У мненя почему-то даже в пустом инвентаре одна клетка занята белыи квадратиком. Но если потом закрыть и открыть инвентарь - появляется иконка. Я вот не знаю как избавится от этого лишнего предмета - может кто-то подскажет.
@OSENNIY7 жыл бұрын
Если еще нужно, то сделай неактивным белый квадрат, как делали неактивным саму панель инвентаря.
@capilover10235 жыл бұрын
У тебя этот квадратик(Container) есть в префабе, так что можешь удалять Container из иерархии
@ivanlemming58217 жыл бұрын
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Item : MonoBehaviour { public string sprite; public string prefab; }
@petrvasilkov12217 жыл бұрын
Вот это действительно сложный скрипт. Его то точно сложно написать в ручную)) (кстати, там вроде ещё одна строка переменной должна быть)
@ivanlemming58217 жыл бұрын
там дальше да, появляется. Ну думаю дальше сами справитесь уже;)
@WINDSCHEID_B8 жыл бұрын
Где скрипты
@nullptr_or_null83018 жыл бұрын
ЭТО НЕ ЕГО ВИДЕО, А ВИДЕО ЧЕЛОВЕКА, КОТОРЫЙ УДАЛИЛ СВОЙ КАНАЛ ПОЭТОМУ И НЕТ СКРИПТОВ. P.S. читай описание о канале
@Василий-т3й3з8 жыл бұрын
вот ты обнаглевшая морда, он тебе тут всё разжевал, а тебе впадлу переписать скрипт вручную? Можешь завязывать с созданием игр.
@petrvasilkov12217 жыл бұрын
ты слепой? на промежутке от 0:00 до 46:46
@mnogonotka3682 жыл бұрын
Если ты тупо будешь вставлять скрипты и не разбираешься что да как за что отвечает за что отвечает это ты игры сам делать не сможешь из-за незнания языка программирования