Как сделать инвентарь в Unity. Часть 1: Модель, абстракция

Sdílet
Vložit
  • čas přidán 28. 08. 2024

Komentáře • 51

  • @MrFreeToops
    @MrFreeToops Před 6 měsíci +7

    Вообще это здорово, что ты решил изменить форму обучения, порой очень сложно смотреть длинные ролики с динамикой динамикой

  • @qiweivaneevmaksim9074
    @qiweivaneevmaksim9074 Před 3 měsíci +2

    Боюсь представить что было до этого, если вот это - просто. Но написание кода в реальном времени с комментариями очень помогает пониманию

  • @justrain8730
    @justrain8730 Před 6 měsíci +4

    наконец-то кто-то делает нормальный видос по инвентарю. как раз с завода пришел, щас чаечек заварю
    будет круто, если покажешь как с инвентарем делается панель квик слотов и всякие хранилища

    • @gamedevlavka
      @gamedevlavka  Před 6 měsíci +1

      Крик слоты это можно будет устроить, после

  • @user-fh7ie5jp3c
    @user-fh7ie5jp3c Před 6 měsíci +3

    От простого к сложному, однозначно лайк)

  • @user-ve3hp4eg3f
    @user-ve3hp4eg3f Před 6 měsíci +3

    Референс отличный, буду очень ждать всей серии роликов по инвентарю!

  • @RimuruDev
    @RimuruDev Před 6 měsíci +4

    Like + Share не глядя. После рабочей смены обязательно наслажусь этим материалом♥

  • @Bedlamikus
    @Bedlamikus Před 6 měsíci +2

    Безмерно благодарен, конструктивное видео с полезной информацией сегодня редкость 👍

  • @StratoCatster
    @StratoCatster Před 6 měsíci +2

    Люблю страшные и долгие ролики... Придётся привыкать к красивым и долгим)

  • @MrFreeToops
    @MrFreeToops Před 6 měsíci +3

    О наконец новый видос, класс👍

  • @andreiraketa6300
    @andreiraketa6300 Před 6 měsíci +1

    Как всгда топовый контент по Unity

  • @xRoollyx
    @xRoollyx Před 6 měsíci +1

    Отличное видео. Жду продолжения.

  • @LemuR4ek
    @LemuR4ek Před 6 měsíci +1

    Ой ну огнина же! как же ты хорош.

  • @Veles017
    @Veles017 Před 6 měsíci +1

    Очень ждем твой курс!😊

  • @mrpaganinifeed2617
    @mrpaganinifeed2617 Před 6 měsíci +1

    Красавчик, всё предельно понятно

  • @GorMax123456
    @GorMax123456 Před 6 měsíci +1

    Спасибо, жду продолжение!

  • @Veles017
    @Veles017 Před 6 měsíci +1

    Спасибо большое за труд!

  • @user-us2mp6yw6n
    @user-us2mp6yw6n Před 5 měsíci +1

    Ждем новый цикл по инвентарю, чтобы в каждом слоте хранилась реальная item, и у нее есть "прочность", кол-во патронов внутри, а ещё рюкзак внутри рюкзака внутри рюкзака

  • @nepochat
    @nepochat Před 6 měsíci +1

    Лайк этому герою

  • @ywi4548
    @ywi4548 Před 6 měsíci +1

    Ждем продолжение

  • @animeplanet4839
    @animeplanet4839 Před 6 měsíci +1

    Ждем Продолжение!!!!!!

  • @goldgold594
    @goldgold594 Před 6 měsíci

    Очень жду вторую часть)❤

  • @mixer9524
    @mixer9524 Před 6 měsíci +2

    Насчет сложности согласен, в некоторых ролика уследить за мыслью, любителю, очень сложно

  • @wsxpocxeafx
    @wsxpocxeafx Před 3 měsíci

    32:42 Интерфейс это не защита от злоумышленника, это защита от случайной ошибки программиста. Можно не только интерфейс привести к конкретному классу, можно в интерфейс дописать сеттер и вуаля, ты можешь писать туда, куда писать было нельзя. Но если хочется, чтобы приведение не работало, можно написать обертку над моделью, реализующий ReadOnly интерфейс, в обертку передавать в конструктор саму модель, тогда приведение уже работать не будет, но будет один дополнительный класс к каждому классу, который в твоём коде реализует интерфейс.

  • @user-pj8yy1ko1i
    @user-pj8yy1ko1i Před 4 měsíci

    взаимодействие вьюшки и модели с помощью прослойки это что-то вроде MVVM паттерна, хорошая реализация!
    edit: но я думаю тут больше как MVP (model, view, presenter)

  • @dem8683
    @dem8683 Před 6 měsíci +1

    ролик про борьбу с читерами без "страшного кода" +

  • @happytablo
    @happytablo Před 6 měsíci +2

    ❤‍🔥

  • @mr.flizzik2750
    @mr.flizzik2750 Před 6 měsíci +1

  • @brainwashing5576
    @brainwashing5576 Před 5 měsíci

    Спасибо. Старался примерно так же делать, но в вашем видео подчерпнул пару идей. Пока не понятно как решать некоторые проблемы, надеюсь они будут обсуждаться далее. Например, если это не инвентарь, а поле с клетками и юнитами на них, юнит - сложный объект и очень часто нужно получить данные клетки, имея данные юнита или наоборот. ну и вопрос о том какой класс должен иметь доступ для изменений, ведь игрок кликать должен и взаимодействовать с моделью.

  • @AzDzelo
    @AzDzelo Před 5 měsíci

    Спасибо, отличный урок! Вы выбрали двумерный массив для инвентаря, таким образом мы сильно связано представление, не лучше ли сделать одномерным массивом или списком, где будет только порядковый индекс?

    • @KerryBlackSun
      @KerryBlackSun Před 5 měsíci

      Вроде как инвентарь как раз таки и есть список, а метод GetSlots() всего лишь копирует этот список в двумерный массив и вызывается он во View, т.к. на выходе во View мы хотим получить сетку. Если я не ошибаюсь, то можно было бы возвращать из метода и список, а во View уже делать с ним что угодно, в том числе и отображать в виде сетки. Вот как вообще понять подобные тонкости? Где лучше преобразовывать список в двумерный массив? В данном методе GetSlots() или всё таки в методе класса View, просто для вывода в виде сетки?

    • @alexandrkotov2094
      @alexandrkotov2094 Před 2 měsíci

      ​@@KerryBlackSun зависит от того, связана ли с этими клетками какая то механика. Если это просто для отрисовки - можно и во вью

  • @brainwashing5576
    @brainwashing5576 Před 5 měsíci +1

    Трудно найти такие видео как это, когда уже изучил уже язык, все инструменты и принципы архитектуры, но не получается нормально следовать этим принципам.

  • @user-tv9oi3xf1w
    @user-tv9oi3xf1w Před 6 měsíci +1

    Подскажи плиз, что за ide используешь. VS чет не удобен мне 🥲

    • @gamedevlavka
      @gamedevlavka  Před 6 měsíci

      Я юзаю Rider, лучше пока не встречал

  • @aleksey2793
    @aleksey2793 Před 6 měsíci +1

    А если требуется прокачивать предмет? Ну например уровень у предмета есть, или предмет со вставками какими-то.

    • @gamedevlavka
      @gamedevlavka  Před 6 měsíci

      Прокачка предметов это другая система, инвентарь работает со списком идентификатор, ему без разницы что там за предметы и какой у них функционал

  • @happytablo
    @happytablo Před 6 měsíci +1

    Видос топ, намного легче усваивается материал, отличное решение

  • @francheskodown
    @francheskodown Před 6 měsíci

    По сути, View не обязательно знать даже о ридонли инвентарных предметах, все что должен получать view, это даннве мостоящие из ади предмета его количества и процента прочности, при необходимости, все что нужно View, плюс он должен мочь ассоциировать айди предмета с UI спрайтом. Ну и там события, что бы прослойка которая представляет бизнес логику инвентаря в удобоваримом для View виде подписывалась на эти ивенты и уведомляла бизнес модель о вводе с ui, в таком случае, наше представление инвентаря в бизнес логике не зависит от того, как презентер интерпретирует его для UI, условно это даже может быть словарь с парой айдипредмета - его количество, или даже, если у нас предмет хранится в какой то базе данных, ключь айди и в значении пара, количество и ссылка на БД, откуда и будут подсасываться все данные о предмете.

    • @francheskodown
      @francheskodown Před 6 měsíci

      Такой подход позволяет не заострять внимание в бизнес логике, в каком конкретно порчдке выложены в UI предметы, или как разделены стаки, и как пользователь с ними хочет взаимодействовать. В идее такую систему можно спокойно применять и с ивнвенатрём где предмет занимает несколько клеток.

  • @Creeper71
    @Creeper71 Před 6 měsíci

    А почему int в айдишнике для извщ? Производительнее же должно быть. Или это чисто для понятности, т.к. обучающий проект?

    • @gamedevlavka
      @gamedevlavka  Před 6 měsíci +1

      Производительнее.
      1. Если у тебя не мультиплеер с кучей интеракций с инвентарь, то плюсы от производительности сходят на нет, а отладка страдает, вывести в лог удобрчитаемые данные сложнее. На моем опыте ид в виде int встречается только в высоконагруженных местах мультиплеера.
      2. Да, обучающий, и по причине неудобного логирования, в том числе выбрана строка.
      А так, без разницы, когда будешь работать с инвентарь, поменяй все на int - будет работать оптимизированнее

    • @EvilYarik
      @EvilYarik Před měsícem +1

      Любой пограммист ожидает увидеть "id" в виде целочисленного типа и это общепринято. Другие типы идентификации постоянно используются и string в особенности, но их называют "key", а не "id". Дело не в производительности, просто string крайне гибкий, в него можно трансформировать всё с помощью ToString, например тот-же enum и этим может одновременно пользоваться и программист не прибегающий к строковым литералам и дизайнер, свободно действующий, как ему вздумается. Почему изврат? потому, что автор неграмотный.

  • @NomadTheN
    @NomadTheN Před 2 měsíci +1

    Это точно для джунов?😢

    • @EvilYarik
      @EvilYarik Před měsícem

      Нет, не для, а от джуна, который не понимает что и зачем он делает)😅

    • @user-it9mg3ge6p
      @user-it9mg3ge6p Před měsícem

      @@EvilYarik где можно посмотреть обучающие ролики от вас,сенсей,блин?

  • @benzeji9686
    @benzeji9686 Před 6 měsíci

    Когда вторая часть?

    • @gamedevlavka
      @gamedevlavka  Před 6 měsíci

      Полагаю на следующей неделе будет

  • @def6141
    @def6141 Před 6 měsíci +1

    eeeeee😀

  • @gangstaproger7478
    @gangstaproger7478 Před 2 měsíci +1

    ппц каша

    • @EvilYarik
      @EvilYarik Před měsícem

      ... в голове автора