Как сделать игру на Unity 5 #16 создание инвентаря

  Рет қаралды 8,632

Stream (утерянные видео)

Stream (утерянные видео)

Күн бұрын

Пікірлер
@НикитаСоромытько-з5ч
@НикитаСоромытько-з5ч 8 жыл бұрын
Ребята, на текстурах, которые буду появляться, когда берешь предмет надо поставить (если не стоит) Texture type: sprite (2d and UI) иначе, когда будете разные предметы подбирать у вас будет выводится одна белая текстура!
@невис-л6з
@невис-л6з 6 жыл бұрын
Скрипт для стандартного контроллера от первого лица: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Inventory : MonoBehaviour { List list; public GameObject inventory; public GameObject image; public KeyCode takeButton; public KeyCode showInventory; void Start () { list = new List (); } void Update () { if (Input.GetKeyDown (takeButton)) { Ray ray = Camera.main.ScreenPointToRay (new Vector2 (Screen.width / 2, Screen.height / 2)); RaycastHit hit; if (Physics.Raycast (ray, out hit, 2f)) { Item item = hit.collider.GetComponent (); if (item != null) { list.Add (item); Destroy (hit.collider.gameObject); } } } if (Input.GetKeyDown (showInventory)) { 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 (image); 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); } }
@stream2849
@stream2849 9 жыл бұрын
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class Inventory : MonoBehaviour { List list; public GameObject inventory; public GameObject container; public JessicaScript controller; // Use this for initialization void Start () { list = new List(); controller = GetComponent(); } // 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.GetComponent().item = it; } else break; } } } } void use(Drag drag) { if(drag.item.type == "food") { controller.addFood(50); } else if(drag.item.type == "hand") { HandItem myitem = Instantiate(Resources.Load(drag.item.prefab)).GetComponent(); controller.addHand(myitem); } list.Remove (drag.item); Destroy(drag.gameObject); } void remove(Drag drag) { Item it = drag.item; GameObject newo = Instantiate(Resources.Load(it.prefab)); newo.transform.position = transform.position + transform.forward + transform.up; Destroy(drag.gameObject); list.Remove(it); } }
@therodnichannel2441
@therodnichannel2441 9 жыл бұрын
+Stream (утерянные видео) Спасибо
@ffuribeach2556
@ffuribeach2556 8 жыл бұрын
Stream (утерянные видео) geggdhhddh
@zotovasyt
@zotovasyt 4 жыл бұрын
у меня при подборе предмета не отображается иконка в инвентаре. Предмет исчезает со сцены, но в инвентаре ничего нет
@lertenpoler
@lertenpoler 7 жыл бұрын
Под Unity5.6 не работает. Сначала всё работает, ошибок нет. Но если закрыть Unity а потом открыть то в инвентаре предмет перестаёт отображаться.
@OttogiMazik
@OttogiMazik 8 жыл бұрын
Подскажите, туплю что-то. Как сделать так, чтобы расположение ячеек сохранялось после перезапуска инвентаря? Поглядел, при отключении инвентарь "обнуляется", детей у ячеек нет, и при включении они по порядку листа заново добавляются внутрь.
@andreimaroz6202
@andreimaroz6202 7 жыл бұрын
Скорей всего уже не актуально для Вас, но все же... Нужно добавить номер ячейки в проперти айтема, ну и изменить чутка логику фора в наполнении инвентаря, используя это проперти
@DrTauren
@DrTauren 7 жыл бұрын
При добавлении предмета в инвентарь, он сразу там не отображается. Только если закрыть, а потом открыть снова, то тогда предмет там появится. Не пойму в чём дело
@tomasgammister5776
@tomasgammister5776 6 жыл бұрын
срабатывает ведь на условие нажатия I. а на повторное срабатывает очистка. как-то не совсем правильно сделано. пытаюсь сделать интерактивным, но своими силами не получается пока. буду искать подобные видео
@creepydan-vadval-channel2771
@creepydan-vadval-channel2771 8 жыл бұрын
Привет, поздновато, но можешь помочь: Не отображается иконка предмета (просто белый квадрат). Код полностью перепроверял пару раз..
@igorcoolman
@igorcoolman 7 жыл бұрын
у меня тоже пустые квадраты в инверторе почему то.
@igorcoolman
@igorcoolman 7 жыл бұрын
а при попытке выкинуть предмет ошибка выскакивает в строке GameObject newo = Instantiate(Resources.Load(it.prefab));
@andreimaroz6202
@andreimaroz6202 7 жыл бұрын
Скорей всего уже не актуально, но все же... Думаю у Вас не правильный тип текстуры - должен быть Sprite 2D and UI
@ArtemD_f
@ArtemD_f 5 жыл бұрын
ПСС благодарить не надо я там нимного под себя переделал using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Inventory : MonoBehaviour { List list; public GameObject inventory; public GameObject container; void Start () { list = new List(); } void Update () { if (Input.GetKeyDown(KeyCode.F)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 2f)) { Item item = hit.collider.GetComponent(); if (item != nul) { list.Add(item); Destroy(hit.collider.gameObject); } } } if (Input.GetKeyDown(KeyCode.Tab)) { 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); } }
@innocshipil8103
@innocshipil8103 8 жыл бұрын
list.Add(item); - заносим ссылку на экземпляр класса Item болтающийся где то в памяти в элемент списка list Destroy(hit.collider.gameObject); - удаляем гем обдж вместе с прикрепленным упомянутым выше экземпляром Item. !!! Мы удалили данные на которые элемент list указывал. У меня взрыв мозга и срыв шаблонов. Как в ролике дальше прога умудряется работать? Как будто данные экземпляра Item на которые ссылается элемент list удалены не были. Объясните не дайте помереть дураком.
@OttogiMazik
@OttogiMazik 8 жыл бұрын
Так мы скрипт Item заносим в List, и оперируем с ним для нужной картинки и префаба.
@stepanturitsin4219
@stepanturitsin4219 8 жыл бұрын
У меня не получается забирать предметыМой игрок от первого лица
@OttogiMazik
@OttogiMazik 8 жыл бұрын
Может упустили что-то. Проверьте, раскидали ли все скрипты и прочее, как в уроке. Или опишите проблему подробнее.
@stepanturitsin4219
@stepanturitsin4219 8 жыл бұрын
Я переписывал скрипт Inventory несколько раз, Item просто создал. Скрипт Inventory пробовал скидывать в FirstPersonController и FirstPersonCharacter. Item скидывал на предметы, которые мне нужно подобрать и делал на них Rigidbody. У меня они просто не подбирались и всё тут. У меня unity personal. P.S Пробовал также с моделью человека (ThirdPersonController)
@stepanturitsin4219
@stepanturitsin4219 8 жыл бұрын
Могу скинуть изображение
@OttogiMazik
@OttogiMazik 8 жыл бұрын
Окей. В каком смысле не подбирались? Всм происходят 4 вещи: 1) Пускается рейкаст и находит на объекте компонент Item. 2) Скрипт Item с предмета добавляется в Лист. (его можно сделать публичным, чтобы увидеть). 3) "Подобранный" гейм-обджект удаляется со сцены. 4) Создаётся ячейка в инвентаре. Какую-нибудь ошибку выдаёт Юнити?
Как сделать игру на Unity 5 #17 Инвентарь и предметы
46:47
Stream (утерянные видео)
Рет қаралды 8 М.
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Как сделать игру на Unity 5 #30 Деформация моделей
14:27
Stream (утерянные видео)
Рет қаралды 8 М.
Как сделать игру на Unity 5 #34 Как надеть одежду на персонажа
16:20
Как сделать игру на Unity 5 #18 Элементы паркура
37:14
Stream (утерянные видео)
Рет қаралды 9 М.
Как сделать красивую графику в Unity3d
5:01
Как сделать игру на Unity 5 #29 Оптимизация
30:10
Stream (утерянные видео)
Рет қаралды 13 М.
Как сделать игру на Unity 5 #22 Сохранение игры
20:33
Stream (утерянные видео)
Рет қаралды 4,7 М.
Как сделать игру на Unity 5 #25 Как сделать автомобиль
22:13
Stream (утерянные видео)
Рет қаралды 44 М.
FNAF на Unity #4 Двери и свет
23:46
Stream (утерянные видео)
Рет қаралды 5 М.
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН