Я хочу реализовать выстрел из гарпуна(хука), как в игре Dota 2.
Чтобы когда Pudge бросал крюк:
1. За крюком следовала линия (тросс)
2. При возвращении хука - тросс сокращался и потом вовсе исчезал.
Вот видео - https://youtu.be/xlcw7VGaqiY
1 пункт примерно понимаю как реализовать, а вот со вторым возникают большие трудности. Есть какие-нибудь идеи как можно такое реализовать? Желательно бы со ссылочками
Есть такая штука как Joint. Всегда актуальная документация по джоинтам есть в документации к юнити: https://docs.unity3d.com/Manual/Joints.html .
Если это 2д проэкт, то там есть отдельно 2dJoint-ы: https://docs.unity3d.com/Manual/Joints2D.html
Через него, например, реализуется таскание при помощи веревок/цепей/проводов. У документации юнити видеотуториал по использованию джоинтов.
А вот здесь можно найти неофициальный туториал, только для создания физики таскания на веревке при помощи джоинтов.
Формально, твоя задача сделать несколько секций цилиндров соединенных между собой при помощи джоинтов и у тебя будет веревка/цепь/провод. Чем больше количество секций - тем реалистичнее выйдет.
Думаю, что если заскейлить размер веревки по нужной оси(Relative только!) то получится именно тот эфект, который нужно и на основе физики будет притягиватся персонаж.
Думаю что это решение подойдет если нужна физическая составляющая.
Так же есть решение через https://github.com/NoxWings/Cable-Component
Здесь физика веревки не будет учитыватся. Немного более широкое описание: Unity Cable-Component
В даном случае т.к. веревка нефизическая, нужно будет при прикреплении к персонажу/предмету подсовывать его... Можно попробовать двигать через MoveToward(), но я не уверен на сколько это красивое решение...
UPD:
Есть еще третий вариант. Думаю, по быстродействию он будет самым оптимальным:
Нарисовать между центрами двух обьектов сплайн, а потом вдоль сплайна рисовать звенья веревки/цепи. Как это сделать можно почитать, например, вот здесь: https://catlikecoding.com/unity/tutorials/curves-and-splines/
Сплайн должен быть двухточечным. Т.е. указыватся начало и конец -- без промежуточных точек. Обновлять позиции точек будет достаточно просто...
Думаю, на том видео которое было примером был взят именно этот путь реализации.
К сожалению Joint'ы мне не помогли, но помог Line Renderer. Я просто нацепил на каждый объект хука line renderer
и в качестве стартовой позиции линии я указывал игрока, а в качестве конечной - transform.position
самого хука.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Заменяю текст в документе wordПока текст короткий передаю в word, всё нормально работает
Подскажите как это реализуется, ни разу такого не делалМне надо, перед методом проверять, имеет ли роль пользователя, разрешения на использования...
При попытке загрузить файл с хоста таким образом
Знаю эта тема довольно заезженная но, ошибка появилась с ничегоЯ ничего не обновлял, не удалял а просто делал свою прогу