Как реализовать Drag and Drop в Unity UI?

  Рет қаралды 16,134

Лавка Разработчика

Лавка Разработчика

Күн бұрын

Пікірлер: 61
@eveuptime
@eveuptime 2 жыл бұрын
Гендерно-нейтральный коммент, минимум из трех слов, для продвижения канала
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Авторитетный ответ в сопровождении с лайком, для имитации диалога с подписчиком
@design_art_style
@design_art_style 5 ай бұрын
Всё супер с первого раза получилось именно так и нужно объяснять всё по полочкам спасибо большое
@mypaxa003
@mypaxa003 3 жыл бұрын
Очень простая и понятная реализация👍 Но я бы, наверное, ещё подумал по поводу отрисовки предмета поверх слотов. Мне кажется, во многих случаях отключать сетку будет неудобным (при добавлении новых слотов например), но это уже совсем другая история))
@gamedevlavka
@gamedevlavka 3 жыл бұрын
Да, это другая история) однако, отключение сетки все равно можно юзать: добавляешь элемент, включаешь сетку, перестраиваешь, отклбчаешь сетку, можно таскать) можно со слоями запариться, схожу не скажу, что проще, там и так и так есть подводные камни)
@zdrastepriehali49
@zdrastepriehali49 2 жыл бұрын
блин просто отличный тутор, все сразу получилось!!
@vladisslavss
@vladisslavss 2 жыл бұрын
Отличный урок! Лукас и коммент в поддержку канала !
@Sussland
@Sussland 2 жыл бұрын
Крутое видео, понятное и именно то, что я искал!
@Priboy313
@Priboy313 Жыл бұрын
Отличное видео! От себя хочу добавить, хоть и прошло уже прилично времени, что по наблюдениям если бросить предмет когда курсор не точно над белым квадратом, а рядом, над пустым бортиком, то дроп не сработает и предмет вернётся в стартовую позицию. Я это решил следующим образом: image в слоте сделал полностью прозрачным и увеличил его размеры на ширину spacing в сетке. И сделал ребёнком ещё один image белого квадрата старых размеров, которому отключил рейкаст таргет. Визуально то же самое, но без пробелов в сетке.
@AlexandrFedotov009
@AlexandrFedotov009 2 жыл бұрын
Godlike! очень крутое видео!!! Спасибо)
@brittanymiller8590
@brittanymiller8590 2 жыл бұрын
Красавчик) Лайк и подписка)
@user-nj8ee1hj8z
@user-nj8ee1hj8z 3 жыл бұрын
Очередное отличное видео. Спасибо.
@bleach4rever
@bleach4rever 3 жыл бұрын
Спасибо за видео, насчёт темы для видео, я бы посмотрел про таймеры. Вариантов реализаций таймеров много, поэтому я бы хотел узнать с твоей точки зрения, какое решение наиболее практичное.
@gamedevlavka
@gamedevlavka 3 жыл бұрын
Принимается)
@kokos_kek
@kokos_kek 3 ай бұрын
Пишу от 07.05.24. Если вкратце - отличный видос, нашёл решение своей проблемы, спасибо, снимаю шляпу.
@MoronicSoul
@MoronicSoul 3 ай бұрын
если ты про размеры грида 1800х1100, то просто это суммы размеров ячеек, отступов внутрь контейнера, и наружных отступов ячеек)1800 = 300*5 + 50*4 +100 и 1100 = 300*3+50*2+100. Если ты не про эти размеры то сори что влез и задушнил)
@def6141
@def6141 3 жыл бұрын
Спасибо! Очень полезно новичку! Как раз сегодня думал разобраться, как сделать джостик на андроид. Вот теперь понятно куда копать :) Может сделаешь урок по реализации простого джостика для андроид управления персонажем но через InputSystem и Character Controller😁
@WanP1su
@WanP1su 3 жыл бұрын
А бесплатный плагин Joystick Pack с ассет стора не подойдёт?
@gamedevlavka
@gamedevlavka 3 жыл бұрын
Согласен с предыдущим оратором, есть Joistick Pack, который легко кастомизируется. А зачем тебе InputSystem? Он обычно используется, можно было игроку дать настраивать управление, но это больше для ПК/Консоли история, а не про мобилки. Либо я не до конца понял вопрос)
@def6141
@def6141 3 жыл бұрын
@@gamedevlavka Зато я понял немного больше теперь ))) Да видел этот пак. Надо в коде разбираться самому, а когда тебе рассказывают намного проще😊 Я пока не сильно понимаю как правильно двигать персонажа (есть же куча вариантов). А через Joystick Pack и rigidbody.MovePosition у меня почему то персонаж как то дергано двигался. В то время как через wasd было норм
@livingend1638
@livingend1638 3 жыл бұрын
раньше был прямо готовый джойстик для андроида в стандартных ассетах, может и сейчас он там лежит...
@unityrututorials1327
@unityrututorials1327 3 жыл бұрын
@@livingend1638 там он всегда есть и будет. единственное что стандарт теперь надо самому скачивать))))) а новички которые 2020 ставят, даже и не подозревают о наборе стандарт ассета!!
@BastionKadabr
@BastionKadabr 27 күн бұрын
у Unity это называется конкретно Supported Events Manual/Unity/ UI/Events/SupportedEvents честно зае искать этот список , когда еще не знаешь точно в каком отделе там 17 штук ==+++ recTransform свойства sizeDelta - ширина и высота widht и height синих квадратов прямоугольников , от синего кружка идет отсчет localPosition дочерних - если для слота их ставить всегда в левый нижний угол то localPosition по x и y будут отсчитываться только в положительном от 0
@dihaneeer
@dihaneeer 3 жыл бұрын
Круто, просто и понятно!
@aleksandrrecoba1434
@aleksandrrecoba1434 3 жыл бұрын
Спасибо за урок, можно ли в ближайшем будущем урок по Drag and Drop в Unity 3Д объектов на поле. Как шахматные фигуры в 3Д.
@satilast
@satilast Жыл бұрын
Спасибо. Отлично объяснено. Лайк поставил. Правда я не стал сортировать элементы в группе. Если я правильно понимаю - это работа с массивом и памятью при каждом переносе. Вместо этого в OnBeginDrag запоминал parent (если мы хотим, чтобы он возращался в предыдущий слот в случае промаха) и задавал parent = grid, предварительно выключив GridGroupLayout (раз это внешний элемент по отношению ко всем другим), а на OnEndDrag включал обратно GridGroupLayout и проверял, если родитель grid, то задать родителем предыдущий слот. Всё-таки событие OnDrop произойдет раньше OnEndDrag, поэтому такое условие подойдёт. Его можно применять, если по каким-то причинам не хочется менять порядок самих слотов. Если в чём-то логически ошибся - поправь пожалуйста. Только начинаю изучать Юнити и С#.
@nikghost3356
@nikghost3356 Жыл бұрын
Я бы не сказал что это удачный способ. При начале перетаскивания запоминаем родителя, и вытаскиваем элемент за пределы Grid. После чего перемещаем, и устанавливаем нового родителя. Если UIItem за пределами слотов, просто возвращаем изначальный слот.
@leg0redd0
@leg0redd0 Жыл бұрын
Спасибо!
@PorksandWith
@PorksandWith 3 жыл бұрын
привет! можешь сделать видео про настройку райдера? возможно плагины, линтеры и все чем пользуешься
@gamedevlavka
@gamedevlavka 3 жыл бұрын
Привет! Да там снимать нечего) голый райдер)
@romarizkov
@romarizkov 2 жыл бұрын
Бро, есть способ каким-то образом реализовать оконный интерфейс в Unity? Окна как в Винде, всплывающие меню, закрытие одних окон, открытие других?
@AleksYurchenko
@AleksYurchenko Жыл бұрын
Кастомные контролы в UI Toolkit хотелось бы создать и тоже тягать их. Только так, что бы один контрол занимал место другого, а другой смещался вверх или вниз.
@MoronicSoul
@MoronicSoul 3 ай бұрын
хм, я понял как этим пользоваться(+-), но не понял как это работает. мы же не написали никакого когда, который непосредственно берет и тащит. только, грубо говоря, обработчики событий, или что-то такое.
@antplay6759
@antplay6759 2 жыл бұрын
А можно ли как-то закрепить позицию по определённой оси? Я хочу чтобы объект двигался только по оси X
@romarizkov
@romarizkov 2 жыл бұрын
В свойствах нужного объекта ищи ключевое слово fix или его вариации
@othelnik6659
@othelnik6659 Жыл бұрын
Отличное видео! А что если у меня 2 канваса, второй как раз с инвентарем но он конфликтует с первым и не дает мне перекладывать предметы, но после отключения первого канваса все предметы нормально перекладываются?
@ericpetakchyan9457
@ericpetakchyan9457 2 жыл бұрын
Спасибо за урок, все работает четко, как в видео. Такой вопрос только: когда отпускаю item, он садиться в slot резко, моментально, без анимации. Можно реализовать что-то подобное, чтобы item садился в slot плавно ?
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Конечно можно, нужно просто не присваивать новую координату резко, а запускать алгоритм "полета" из текущей точки в нужную. Я такие вещи делаю через корутину
@romarizkov
@romarizkov 2 жыл бұрын
Бро, а нужно ли в свойствах Main Camera в стеке прописывать UICamera, чтобы при первом запуске видеть не пустой Скайбокс, а созданный интерфейс инвентаря?
@brunskiy
@brunskiy 2 жыл бұрын
Спасибо
@DrZupan
@DrZupan 8 ай бұрын
а как 3д объект дропнуть в ячейку?
@romankisel9261
@romankisel9261 2 жыл бұрын
Здравствуйте , а можно где-то взять готовый код?
@romarizkov
@romarizkov 2 жыл бұрын
Быстрее самому будет написать, чем искать готовый код целый год
@AltoDuce
@AltoDuce Жыл бұрын
Отличное видео! Спасибо за прекрасные и простые видео на русском языке!
@nikegoof1912
@nikegoof1912 2 жыл бұрын
Возможно это только у меня белый экран на заднем плане і не тащится предмет... или я штото не так сделал ;(
@1cheeky_cat1
@1cheeky_cat1 Жыл бұрын
Как правильно сделать двойной клик/тап по предмету?
@gamedevlavka
@gamedevlavka Жыл бұрын
Через кеширование первого клика: запоминается клик и запускается короткий таймер, который очищает информацию о первом клике. Если таймер ещё не кончился, а игрок кликнул ещё раз, то это двойной клик/тап
@romarizkov
@romarizkov 2 жыл бұрын
Бро, как ты так сделал, что в редакторе скриптов появляется всплывающее меню, которое даёт выбирать слова?
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Если я правильно понял вопрос, то это все все райдер (Rider: www.jetbrains.com/rider/).
@romarizkov
@romarizkov 2 жыл бұрын
@@gamedevlavka Visual Studio Code поставил. Там норм
@romarizkov
@romarizkov 2 жыл бұрын
Бро, а как ты быстро пронаштамповал UISlot'ов пробельчиком? У меня каждый раз надо вызывать из меню дупликейт.
@gamedevlavka
@gamedevlavka 2 жыл бұрын
@@romarizkov ctrl+d - шоткат для создания дупликата)
@user-dm5wf5tq2n
@user-dm5wf5tq2n 2 жыл бұрын
@@gamedevlavka Привет, тутор очень понравился, доходчиво всё объясняешь. У меня только возникла проблемка с scaleFactor. Сам визуал инвентаря я сделал не через камеру, а сразу с канвасом. И как бы я не делил дельту на scaleFactor, всё равно он запаздывает за курсором. При дебаге scaleFactor не равен нулю. Я хз как это исправить. Подскажи плез, буду очень благодарен🙏🙏🙏
@requiem_for_a_dream5463
@requiem_for_a_dream5463 2 жыл бұрын
Что такое партикл?
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Частица в переводе с английского. В юнити есть система частиц для создания эффектов (ParticleSystem)
@requiem_for_a_dream5463
@requiem_for_a_dream5463 2 жыл бұрын
@@gamedevlavka Спасибо за ответ!
@requiem_for_a_dream5463
@requiem_for_a_dream5463 2 жыл бұрын
@@gamedevlavka А можно попросить тебя пожалуйста, какие книги посоветуешь почитать по с#? Я смотрел сегодня твои два первых видоса по инвентарю. Пару раз пересмотрел. Сами методы понятны, что они означают и что делают, но непонятен синтаксис. что такое Interface я вообще не знал, что существует такой класс или как это называется. И сам синтаксис непонятен. Может есть какие нибудь книжки где все это объясняется. Скоро как раз учеба. Будет чем на лекциях заняться.
@livingend1638
@livingend1638 3 жыл бұрын
Где ты был две недели назад, че я сам систему пилил... kzfaq.info/get/bejne/ZrqCqMyIs8rPnp8.html
@yatyanochka
@yatyanochka Жыл бұрын
можно ли сделть что-то подобное? public void OnDrop(PointerEventData eventData) { if(gameObject.name == "Slot1") { Debug.Log("!!!"); } }
@user-vh8oe5cz8h
@user-vh8oe5cz8h 2 жыл бұрын
Спасибо!
Сохранение игры в файл в Unity
20:13
Лавка Разработчика
Рет қаралды 16 М.
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 26 МЛН
艾莎撒娇得到王子的原谅#艾莎
00:24
在逃的公主
Рет қаралды 53 МЛН
Drag and drop in Unity UI - create your own inventory UI!
12:47
Coco Code
Рет қаралды 104 М.
РАЗБОР собеседования на 4000$ - Unity Developer | Вопросы Hard и Soft, тестовое, livecoding
25:34
Мирошкин Олег | Состоятельный геймдев
Рет қаралды 10 М.
Интерфейс для любого разрешения! Адаптивный UI в Unity
10:52
Мотай на ус • Школа разработки игр
Рет қаралды 50 М.
Я сделал онлайн игру за 24 часа!
13:01
Хауди Хо™ - Просто о мире IT!
Рет қаралды 290 М.
Как импортировать конфиги из гугл таблиц в Unity
26:31
Лавка Разработчика
Рет қаралды 2,6 М.
Как сделать адаптивный UI в Unity?
16:05
Школа разработки игр
Рет қаралды 5 М.
Как сделать бафы, дебафы, статусы или эффекты в Unity
21:46
Лавка Разработчика
Рет қаралды 7 М.