Как сделать инвентарь в Unity. Часть 2: Модель, математика

Поделиться
HTML-код
  • Опубликовано: 26 янв 2025

Комментарии • 31

  • @ЛаврикНеизвестный
    @ЛаврикНеизвестный 11 месяцев назад +6

    Хочу отдельное видео про конфиги, чтобы все было по красоте

    • @gamedevlavka
      @gamedevlavka  11 месяцев назад +3

      И такое будет

  • @justsimon_
    @justsimon_ 10 месяцев назад +2

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

  • @boost_456
    @boost_456 4 месяца назад

    24:24 Это скорее не SwitchSlots, а SwapSlots. Swap используют именно в таком значении, когда нужно что-то поменять местами

  • @gamekill9419
    @gamekill9419 8 месяцев назад +1

    Спасибо огромное как раз ищу небольной инвентарь для пет проекта

  • @domiurk
    @domiurk 11 месяцев назад +2

    класне відео мені сподобалось, чекаю продовження з UI, о і таке питання, чи буде відео про те як ти це все грузиш через SO чи тому подібне

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад +1

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

  • @StratoCatster
    @StratoCatster 11 месяцев назад

    Ох, когда я сам писал эту модель с нуля я думал, что упоролся)

  • @dem8683
    @dem8683 10 месяцев назад +3

    Видос по изменеиню сайзинга +, если можно. Слишком много полезной инфы. Хотелось бы по максимуму проработать

  • @alekseystepanov4108
    @alekseystepanov4108 11 месяцев назад +3

    Добавте пожплуйста в модель сохранение\чтение (где, когда, в каком формате?)

    • @gamedevlavka
      @gamedevlavka  11 месяцев назад +1

      Да, это тоже сделаем)

  • @nepochat
    @nepochat 11 месяцев назад +1

    💥💥💥

  • @konstantin9484
    @konstantin9484 10 месяцев назад

    Почему в 19:03 важно работать с копией? Что если написать такой код?
    slot.ItemId = itemId;
    int maxCapacity = GetItemMaxCapacity(itemId);
    if (remainingAmount > maxCapacity)
    {
    slot.Amount = maxCapacity;
    remainingAmount -= maxCapacity;
    totalAmountAdded += maxCapacity;
    }
    else
    {
    slot.Amount = remainingAmount ;
    totalAmountAdded += remainingAmount ;
    remainingAmount = 0;
    return totalAmountAdded;
    }

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад

      Все так, видимо, сработала привычка "на всякий случай", или для лучшего понимания. Я вообще часто создаю дополнительные переменные с норм неймингом, чтобы повысить читаемость. В данном случае ты прав, совсем не обязательно выносить в переменную значение remainingAmount

    • @konstantin9484
      @konstantin9484 10 месяцев назад

      @@gamedevlavka Спасибо за ответ, обязательно продолжу остальные части смотреть)

  • @maksymz6695
    @maksymz6695 8 месяцев назад +1

    Почему переменные в начале класса с большой буквы, а в конструкторе с маленькой? Я все не могу понять синтаксис C#

    • @gamedevlavka
      @gamedevlavka  8 месяцев назад

      Есть различные конвенции для нейминга всякого, обычно пользуются классикой от майкрософт:
      learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names

  • @brainwashing5576
    @brainwashing5576 10 месяцев назад +1

    Метод RemoveItems я бы переименовал в RemoveItem, потому что неявный аргумент amount = 1, может запутать читающего, он подумает что удаляются все предметы с этим названием. а явное указание amount поможет домыслить смысл метода.
    Пишу не ради критики, а ради комментария хорошему видео.

  • @АндрейШевелёв-г2щ
    @АндрейШевелёв-г2щ 10 месяцев назад

    А как сделать слоты только для определенной группы предметов? Например, слоты только для шлемов, или только для оружия

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад

      Звучит как слоты для экипировки. Про это речь?

    • @АндрейШевелёв-г2щ
      @АндрейШевелёв-г2щ 10 месяцев назад

      @@gamedevlavka да

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад +1

      @@АндрейШевелёв-г2щ это не часть механики инвентаря, это часть механики экипировка. То есть в окошке, что ты видишь, когда перекладываешь из инвентаря в экипировку - ты взаимодействуешь с двумя механиками. И слот экипировки в свою очередь может проверять тип предмета, как ему это нравится

    • @АндрейШевелёв-г2щ
      @АндрейШевелёв-г2щ 10 месяцев назад

      @@gamedevlavka понял, спасибо

  • @ARTIFAYT
    @ARTIFAYT 11 месяцев назад +1

    0.0 🎉🎉🎉

  • @domiurk
    @domiurk 11 месяцев назад +1

    коли пишеш ctor то в Rider повинна бути штука ctorf і ctorp що роблять конструктор для полів і для властивостей відповідно

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад

      звучит круто, надо затестить

  • @unel_one
    @unel_one 3 месяца назад

    Да, все не так просто

  • @exregisterqq
    @exregisterqq 11 месяцев назад

    классная реализация, особенно понравился момент с возвращением результата в виде структуры)
    но есть вопрос на счет owner id. зачем его хранить внутри самой сущности инвентаря? ему ведь глобально пофиг чей инвентарь, у нас все равно принадлежность определяется и будет обрабатываться извне. айдишник, считай, в твоей архитектуре нужен чисто для возвращения результата добавления/удаления. и то он по моему там не нужен, как и amount, о котором ты говорил

    • @exregisterqq
      @exregisterqq 11 месяцев назад

      и еще не совсем понимаю смысла от хранения всех инвентарей в одном сервисе. нам ведь понадобится прослойка, связывающая модель и ui и как ты тогда ее планируешь припихнуть?

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад +1

      Насчёт ownerId, тут вопрос того, как будет храниться данные. Если в виде профиля, то внутри данных Owner не нужен, если инвентари отдельным списком - то внутри ownerId нужен. Полный профиль не всегда удобно хранить и не всегда это полезно для оптимизации

    • @gamedevlavka
      @gamedevlavka  10 месяцев назад +1

      А прослойку в след видео будет