Как создать инвентарь в Unity 2021 || Выживание #3
ฝัง
- เผยแพร่เมื่อ 12 ก.ย. 2024
- Привет! В этом видео я покажу вам как создать инвентарь в Unity. Инвентарь будет примерно как в Rust. В будущем я выпущу еще несколько видео которые улучшат и закончат наш инвентарь .
Вторая часть: • Как создать инвентарь ...
Ссылка на все скрипты в видео: yadi.sk/d/ym8f...
Часть кода была взята с англоязычного канала Coding With Unity - / nodokargra
Я очень давно искал долгие подробные видео, и как по мне это то что нужно. Мне очень нравятся серии видео по типу "делаем игру с нуля". Я понимаю, что это большая и долгая работа делать такие видео, но от них я получаю максимально пользы, поскольку мне, как новичку, проще учиться когда мне всё разжовывают и показуют процес создания игры от а до я. И мне лично не лень смотреть даже часовые видео. Ставлю лайк каждому видео из этого плейлиста!
Пересмотрел кучу роликов про инвентарь, перелазил кучу форумов, понимал только 70% информации...... Тут же все понял, я в шоке, спасибо тебе большое!!!
согласен таж фигня но я реализовал по свойму . А когда увидел этот ролик заплакал по скольку у меня инвентарь не оптимизированый кусочок гавнишка
Спасибо, дорогой человек!!!! Всё просто, подробно и без воды. Огромное спасибо за приложенные файлы, это бесценно!!!!
Большое спасибо! Ты единственный во всём ютубе кто смог обьяснить про инвентарь нормально!
++++ его видео уроки мне помогают при созданий игры для дипломного проекта
Поддерживаю!
У кого проблема с яблоком - перемотайте на 55:05 и допишите slot.SetIcon(_item.icon); перед return. З.ы видео хорошее
Ты лучший, я 2 часа ковырлся в коде и пытался его понять ты помог мне спасибо огромное
Спасибо огромное,решил эту проблему,хороший человек))
Это делает яблоко что бы оно подбирались???
хз надеюсь
@@PolitWolfex
благодарю, друг, реально выручил
Ура RUST в наших руках!
Чел, ты правда хорош, я тут экзамен делаю, смотрю, ты огромный молодец, реально, ты крут, не заслужено мало лайков и подписоты, только не сдавайся, без тебя мне экзы не сделать...
лучше бы написал недооценён, а не не заслужено)
Вот хорошо что ты выпустил ролик про кнопку прыжка, как раз пригодилось для реализации кнопки открытия инвентаря))
Это замечательно! Класно, что ты догадался как применить этот-же метод для инвентаря)) Я как раз так и буду приделывать инвентарь в мобильную версию в будущем👍
@@Maximple это было бы не плохо, так как я посмотрел на код с энтузиазмом и предвкушением сделать все под андроид, но в итоге задался вопросом как сделать Raycast не под компютерную мышку, а, например, под crosshair. Также хотелось бы рассмотреть вариант с всплывающей кнопкой, хоть думаю там все просто, но все же на всякий случай)
@@Maximple а также, у вас почему то на 14:35 всплыла новая библиотека, которая почему то выдает у меня ошибку, а без нее все нормально
@@Raxlash Да, мне Visual Studio решил подкинуть библиотеку которая у всех выдаёт ошибку)) Но ее нужно просто удалить)
@@Raxlash А что ты имеешь в виду под raycast-ом под crosshair? То есть raycast для какой функции (подбор предметов или что иное)?
Ого! 1час годного контента) Круто!
Отличные уроки и самое главное приятный голос. А то некоторых слушать невозможно.
Инвентарь почти довел до ума, спасибо. Сделал кое как сейвы. Но у меня возникает вопрос, а как теперь сделать сундуки и склады в плане сохранения? Ведь на каждый слот каждого сундука писать строчку это как то много... так сказать. Есть какие то идеи? Поделитесь как сделать проще.
топ, аж самому захотелось по этим гайдам сделать выжывач
Всё сделал так яблоко подбираеться но в инвенторе нету картинки яблоко что делать подскажите пожалуйста как исправить это
Посмотри следующие видео, возможно там, я не знаю первый раз смотрю
Слушай, а сделай видео создания инвентаря как в the forest, будет круто
Спасио за уроки, чувак ты крут))) Погодите, голый мужик в лесу с яблоками, хмм напоминает какой-то библейский сюжет, не так ли?
Блин сделал как на видео все а иконки яблок не появляются
Урок ТОООП я еще не досмотрел но сурипты уже работают, заранее спасибо
Изменено : у меня после луча что бы подбирать какая то ошибка NullReferenceException:object reference not set to an instance of an object что делать помогите , игра не запускается теперь
лучший туториал по инвентарю
Привет можешь помочь я сделал все как на видео но когда я подбираю яблоко то иконка в инвентаре не появляется
всё круто получается молодец!!! Спасибо за уроки !
Крутой урок прям огромное спасибо )))))
А как удалять предметы из инвентаря по кнопке, тоесть ты хочешь удалить предметы и нажимаешь на на кнопку удалить прежде нарисовав её, что нужно в код писать?
За ссылку на скрипты отдельный респект!!!
а можешь скинуть? у меня пишет что сайт не найден
@@ТарасКолянковський если доверяешь мне, то держи, я себя на гугл диск кинул: drive.google.com/drive/folders/1eIX4Y-2bM28NbiPKIzu-wmw4lCT5WgpF?usp=share_link
Просто лучший: )
Топовый ролик! Люди не выкладывайте в комменты скрипты из видео, из за них продолжительность ролика сильно уменьшится и он будет хуже продвигаться в реки
Все коды взял у тебя в описании но почему то не роботает при запуске подбираю яблоко открываю инвентарь там есть цифра 1 но нет спрайта яблока *ПОМОГИ!*
Такаяжн фигня
Ну что, исправил?
+
@@maxvell-gamedeveloper Исправил?
Крайне лаконичный и приятный урок)
Самый лучший гайд по инвентарю!
Привет, надеюсь ты ответишь, я делаю игру на юнити на подобии Last Day и вид камеры у меня сверху и я бы хотел узнать как можно реализовать поднятие предметов как в Last Day
Огромное спасибо! Помог :)
Я лентяй, можно скриптики? Я посмотрел весь видос что то много писать, я знаю что это полезно для усвоения но лень всему враг ☺
Привет! Понимаю)) Я прицеплю ссылку на все скрипты которые я использую в игре через 5 мин 👍
@@Maximple Спасибо больше!
@@Maximple у меня не чего не получаеца скить инвентарь именно как фаил или на подобии но наверняка тебе лень поэтому скажи прямо если что и я пойду учить c# а не занимаца хуйней
Спасибо, сладкий😘
ЕСЛИ ВЫ НЕ МОЖЕТЕ ВЗЯТЬ ЯБЛОК ПОСМОТРИТЕ ВИДЕО ДО САМОГО КОНЦА И ДЕЛАЙТЕ ВСЕ КАК В ВИДЕО И ВСЕ СРАБОТАЕТ
Maximple я не мог найти урок по подбор предмет для андроид используя райкаст или что то другое можешь помочь
Как в гренни просто подбираешь, инвентарь не надо
И кидаешь
По сути, нужно в делать луч от центра экрана до какой нибудь дистанции и потом лежащий объект перемещать в позицию пустого gameObject который возле твоей камеры игрока. Ray ray = Camera.main.ScreenPointToRay(Screen.width/2, Screen.height/2); // Это луч от центра камеры, дальше постарайся сам))
@@Maximple Понял спасибо большое
лучшее видео на эту тему👍
Привет, можешь помочь? Вначале писал все скрипты как у тебя, но яблоко не подбиралось. Решил скачать твои скрипты, но яблоко также не подбирается, а слот заполняется, когда я смотрю на яблоко, сам обьект не уничтожается
Решил?
Такая же проблема, яблоко не подбирается
почему скрипт FoodItem не работает и пишет: Assets\скрипты\FoodItem.cs(6,21): error CS0246: The type or namespace name 'ItemScribtableObject' could not be found (are you missing a using directive or an assembly reference?)
В действительности инвентарь очень простая и лёгкая вещь которая делается несколькими строчками кода. Просто именно Ты не умеешь круто программировать с максимальной оптимизацией самого кода. И чтобы создать в легкую инвентарь для этого нужно создать скрипт invenari после чего в этом скрипте объявить три переменные:
public hide;
public show;
public namber_item;
И на основе этих переменных строим конструкцию кода таким образом: если игрок поднял больше 1 единицы предмета, то тогда этот предмет показываем-рисуем в верхней левой части экрана вида в месте самим числом предмета. И уже потом дописываем такой код: Если предметов-объектов больше одного, то тогда из них создаём очередь отображения на экране вида показа-рисования тем самым на границе вида с права делаем перенос картинки предмета на новую строчку.
И вот таким образом накидывая данный скрипт на те объекты которые должны показываться в инвенторе и создается самый простой и легкий способ создания инвентаря.
можешь весь такой скрипт кинуть пж
Бро, а можешь сказать во сколько лет ты начал заниматься програмированием?
Дружище, каким образом возможно реализовать в игре терраформинг? Копку небольших ямок, больших ям, траншей? И процесс обратного закапывания. Было бы очень познавательно посмотреть ролик по данному вопросу
Привет! Терраформинг это очень сложная задача, которая мне не под силу) Обычно если нужен терраформинг то пользуются платными плагинами типо DiggerPro: assetstore.unity.com/packages/tools/terrain/digger-pro-149753. Когда стану лучше программистом, то покажу как такое реализовать))
@@Maximple будем тогда ждать))) Есть еще один технический вопрос и интерес - насколько и как его можно реализовать. На генерируемой карте рандомно должны появляться предметы - причем мизерное количество возможно на поверхности, небольшая часть внутри объектов - например здания, а основная масса - в почве. Сами предметы разделяются оп категориям от условно - шлак, до мегараритета..соответственно и процент этих предметов соответствующий. В юнити и программинге я полный баклан, но нужно понимание, как это работает и пути реализации. Заранее спасибо
чисто по твоей просьбе в начале видео пишу сюда, ну и то шо первый x)
Подскажите мне пожалуйста почему у меня персонаж когда спускается с горы от не по горе вниз спускается а в воздухе бежит и медленно отпускактся
Привет а у тебя получилось с лучом и подбирание?
@@fanofgames13 да
@@Bendy_697 помоги пожалуйста а то у меня нету луча и яблоко не подбирается!
@@fanofgames13 у тебя тег камера на мейн камеру включён?
@@Bendy_697 го в телеге
А ваше будет круто, если сможешь рассказать о том как делается ИК - процедурная анимация персонажей с настройкой аватаров под кости своей модели, вот это будет интересно, такого не найти на русско-язычном)
ИК писать в коде я не буду, но я буду показывать как пользаваться Animation Rigging. Это для того чтобы держать оружия и инструменты, а также при подборе придметов чтобы персонаж нагибался и хватал предметы.
@@Maximple если персонаж берет предмет и предмет следует за ладонью, это уже ИК)
Привет, можешь подсказать, почему когда я запускаю игру, то с самого начала нужно 2 раза нажать на кнопку, чтобы открыть инвентарь, а потом 1.
Блин, я чтото не то походу сделал, не отображается подобранное яблоко, хотя все подключил и помоему сделал как на видео. Можешь что нибудь посоветовать?
Если что слоты я расставлял не через Grid Layout Group, это наверное единственное, что я не схожее делал
Хмм. Присоединяйся к дискорду по ссылке в шапке канала и можем там переписыватся и ты мне сможешь отправить скриншот чтобы я лучше понимал.
@@Maximple а писать в личку или в группу?
@@Raxlash Как хочешь)) Если хочешь чтобы другие тоже что нибудь посоветовали, то можешь написать в группу👍
Получилось, и что было, у меня такаяже проблема
Помоги пожалуйста , все сделал как на видео но у меня не подбирается яблоко , Заранее спасибо
Добрый день, у меня была проблема с объектом item типа ItemScriptableObject в скрипте item.cs. Проблема состояла в том, что этот объект, который вешался на яблоки, мало того, что не стакался, так он и не подставлялся в поле и вовсе. 3 часа игрался с этими яблоками и не понимал, в чём дело. Начал пересматривать видео и решил поменять название объекта, о котором говорилось выше с item на itemScriptableObject (itemScriptableObject - это название объекта, которое было раньше присвоено, но по каким-то причинам автора, было переименовано на item), после чего заново скомпилировал проект и объекты начали стакаться корректно. Дорогой автор, скажите, по каким причинам вы поменяли название объекта и есть ли какие-нибудь логические объяснения тому, что произошло у меня с вижлой, не думаю, что это просто приколы вижлы. Спасибо!
После присвоения объекту имени item прежнего itemScriptableObject объект, который отвечает за еду, в нашем случае Apple, при перемещении в свойство не работает. В чём или где может быть допущена ошибка ?
У меня не получается , сделел всё как ты говорил на моменте 24:33 у меня не закрывается инвентарь.
у меня также
А в силах ли сделать генерацию terrain'а ?)
я немного улучшил твой скрипт чтобы плюс ко всему что ты сделал еще добавлялось имя предмета в левом верхнем углу экрана пока мы смотрим на объект. Скрипт будет работать не только с предметами которые можно взять, а вообще с любыми. Чтобы скрипт работал, все объекты имя которых мы хотим видеть на экране должны иметь тег "Interactable". Я добавлял скрипт к модели игрока, все работает. Расстояние поставил 5f, при желании можно изменить.
using UnityEngine;
public class InteractableNameDisplay : MonoBehaviour
{
private string interactableObjectName = "";
public float maxDistance = 5f;
void OnGUI()
{
if (!string.IsNullOrEmpty(interactableObjectName))
{
GUI.Label(new Rect(10, 10, 200, 20), "Вы видите: " + interactableObjectName);
}
}
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.distance
Нихуя ты не улучшил, ты сделал настолько хуже, что фпс изза этого упадет и + проверка по имени очень плохая идея
Привет бро помоги пж у меня иконки и текста нету
Привет! Мне не достаточно информации чтобы решить твою проблему. Не мог бы ты скинуть скриншот своей ошибки или бага и/или описать ошибку более детально (когда подбираю предмет, то в консоли ошибка бла бла, вот её скриншот). Скинишь в группу в дискорда пожалуйста, тогда смогу помочь: discord.com/invite/Fd8n2xphwF
@@Maximple окей сегодня отправляю
@@Maximple помоги пж, у меня яблоки не подбираются, item на яблоке есть, я скрипты брал из описания если что
подскажите пожалуйста, у меня проблемы с созданием инвентаря - менеджер почему-то не переадресуется на другие скрипты, и поэтому в Юнити появляются ошибки о ненахождение слотов или панели инвентаря. Подскажите как решить
Привет есть проблемс, все сделал как у тебя вплоть до 40минуты, но в скрипте inventorymanager выдает ошибку касаемую null из за которой не работает подбор
Привет! Нужно больше подробностей)) Можешь написать в группу дискорда (ссылка в шапке) и когда будет время то тебе помогу👍
Мне бы в будущем хотелось сделать в своей игре, инвентарь как в сталкере или антернед, что бы предметы могли занимать сразу несколько слотов, как бы имели размер. Был бы очень рад если бы ты рассказал про такое.
Есть такой вопрос : Как сделать так чтоб если предмет рядом по нажатию кнопки он подбирался?
Привет! Тебе нужно вместо raycast делать немного по другому. Для каждого подбираемого объекта нужен еще один компонент BoxCollider, SphereCollider и тп который нужно обязательно поставить как trigger. На каждом объекте у тебя уже должен быть скрипт Item. Тебе нужно там добавить public bool isPlayerInArea; переменную. Также добавь функцию OnTriggerEnter() и OnTriggerExit(). Почитай про то как это правильно сделать онлайн. В OnTriggerEnter напиши isPlayerInArea = true; А в OnTriggerExit() напиши что равно false. В Update проверяй if(Input.GetKeyDown(KeyCode.E)){AddItem(amount, item)} или что то вроде того. Я скорее всего что то упустил, но я надеюсь ты сможешь до думать остально самостоятельно👍
Ну да, тебе также надо в Update до AddItem проверять if(isPlayerInArea), а то предметы все поднимуться при нажатии E
@@Maximple The name 'amount' does not exist in the current context пишет
Почему у меня луч смотрит не прямо
Достаточно странные решения в плане оптимизации, куча ифов в апдейте, рейкаст делать только при нажатии на кнопку надо а не постоянно, постоянный гет компонент тоже нехорошо так как он парсит все
Вы правы по поводу оптимизации) If и raycast нужно было бы выполнять по нажатию кнопки. Единственое что я оставил рейкаст снаружи if чтобы показать как он работает. По поводу GetComponent, он не настолько влияет на производительность, но я согласен с вами, что каширование компонентов было бы более производительно 👍
@Fedya Devhack Да, перепишу👍
Почему то когда я запускаю игру она сразу ставится на паузу но ещё когда открываю инвентарь тоже пауза и закрываю инвентарь пауза срабатывает
ЯБЛОКО НЕ ПОДБИРАЕТСЯ ОШИБКА object reference not set to an instance of an object
Есть баг связанный с деревом если в упор подойти к нему и смотреть вниз то ты поднимаешься вверх а если потом подняться и отойти то он будет парить как исправить
всё хорошо только, ты рейакст не много не правильно сделал. Надо сначала нажатие мышки проверить и только потом луч пускать.
Можно вопрос почему у меня в скрипте FoodItem он выдает ошибку в 6,25????
ПОЧЕМУ ЛУЧА НЕТ
дароу нашёл исправление? или нет?
Привет
Можешь сделать сохранение для инвентаря?
Привет! Я точно буду показывать как это делается в будуещем. На данный момент я могу порекомендовать посмотреть вот это видео: th-cam.com/video/232EqU1k9yQ/w-d-xo.html
@@Maximple thx
@@Maximple thx
а можно что за скрипт Фоод Итем тут даже не видно
Всё публичное...
Всё понятно, только не работает подбор яблок.
Я пережал все кнопки - не работает.
И луч не становиться зеленым. В общем пока что это не понятно.
А так всё классно, спасибо.
Тоже не поднимается яблоко решил?
@@alexs7589 да
@@paladinvasya999как?
куда автор подівся?
Автор на протяжении 2-4 минут - меняет настройки ячеек в окне Scene и проверяет в Game.
Возможность изменять и проверять в окне Game - я для тебя шутка!?
капец 4 дн мучился чтобы сделать этот инвентарь
Попробуй выключить игровой режим в виндовс может из за него иногда лагает картинка
Привет! Твои видео мне очень помогли в создании игр и начала работы с движком. Но яблоко просто не собирается и не добавляется в инвентарь. А также выдаёт ошибку:
NullReferenceException: Object reference not set to an instance of an object
InventoryManager.Update ()
Не знаю что делать.
Тоже столкнулся с этой проблемой, напиши, если решил эту проблему
Нашёл ответ в комментариях ниже. Если вы дошли в видео до первой проверки поднятия яблока, а у вас ничего не работает и пишет ошибку NullReferenceException: Object reference not set to an instance of an object
InventoryManager.Update ()
то просто добавьте тэг вашей камере MainCamera или что-то в этом роде. это находится в Инспектре в самом верху
@@JakePalm Благодарю!
Помоги пж запускаю игру когда игрок не двигается и при нажатии например закрытия инвентаря игра ставится на паузу может ошибка в скрипке хз в дс я тебе написал
что делать если не появляеться кнопка inventory? 13:44
Можеш пожалуйста оставить код от инвентаря ото я уже 3 день не могу в create получить
Что делать когда css ругается на слова childCount и GetChild. Срочно, нужна помощь пожалуйста 19:44
Кнопка действия назначается на 52:40
У меня когда подбираю второе яблоко на скрипте пишыт шо их 2, а в тексте 1 помогите?
пиШЫТ? ШО? Ты пиши грамотно пожалуйста
лагает жуть, еще и на такой теме
У кого не появляется картинка, которые посмотрели первый тест появления иконки, вы просто просмотрите дальше он через 2 минуты решает эту проблемк
Мне наоборот нравятся такие большие видео они внушают больше доверия чем 6 минутные видео где чел нечего толком не обясняет бутто делает видео не для новичков а для профи которые работают з юнити уже не первый год
Здорово! Я никогда это с такой точки зрения не рассматривал. Я старался ничего важного не пропускать)
Что делать если нажимаю Е предмет исчезает но в инвентаре не появляется ?
Ответ нашёл в начале следующего видео
А почему не работает Raycast?
Не подбирается яблоко
У меня почему то начинает считать с 0 как это можно исправить?
а почему место числа примета у меня стоит только 0
Oh man, BEL? r u from Belgium?
Yeah) I don't speak French thou(( You from Britain I guess?😄
@@Maximple いいえ。カザフスタんから!😄 Казахстан, правда, временно увы.(
Я думал ты из России, но увидел пометку Belgium ибо сам не раз бывал в Брюсселе катаясь по всему Бенилюксу)
@@user-gz4td7xr4g Ааа😄, так бы не догадался что ты из Казахстана) Я вообще родом из Москвы, но переехал в Бельгию. Здорово, что катаешься по Бенилюксу, какое место тебе больше всего понравилось?
@@Maximple Сложно сказать, везде свои минусы и плюсы, но могу сказать точно что нисколько в континентальной Европе, сколько за её пределами, в Рейкьявике в Исландии например, я бы даже там остался, но на вряд-ли бы ужился, когда летишь в долго временное путешествие нередко тянет обратно домой.
56:45 а не легче через Script Execution Order было сделать? я так и сделал все работает
У меня на 12:16 ItemScriptableObject ошибка вылазит
А что с громкостью?
господа и дамы, у кого проблема в духе NullReferenceException: Object reference not set to an instance of an object
вот решение: поставьте тег у камеры Main Camera
ПЫ.СЫ. обожаю реддит каппа
спс
В Смысле тег
У меня не получается чёто
Люди, буду очень вам признателен, подскажите пожалуйста почему у меня на видео в строчке кода 52 private это недопустимое слово? Несколько раз переписывал скрипт, ничего не помогает! Буду очень благодарен за помощь каждому!
привет , у меня почему-то не поевляеться в инвенторе обьект
у меня тоже
Решили проблему?(у меня icon не отображается(а так всё норм)
@@Modelizm..решил?
Как сделать инвентарь для телефона?
что делать если к амоунт не прибовляеться
А как в скрипте с кнопкой указать кнопку на контроллере окулус?
поищи в инете обозначения кнопок контроллеров окулуса в юнити, и впиши просто нужную кнопку
Когда уже следующий урок? хех
Сейчас уже делаю)) Выпущу уже завтра
@@Maximple а когда сегодня)?
@@exretry7970 Через 15-30 минут))
Что делать если нет того луча и предмет не подбирается а то я 3 раза пересмотрел и переделывал и нечего не происходит ПОМОГИТЕ
Спасибо.
Включи гизмос или досмотри до конца он там прицел сделалц