Как сделать веревку в 2D?

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


Добавляем на сцену пустой объект, назовем его Anchor, на него добавляем компонент Rigidbody 2D, готово. Данный объект будет служить якорем, за который и будет зацепляться наша веревка.

Идем дальше. Добавляем на сцену спрайт круг, с именем Node. На объект вешаем 2D коллайдер и Hinge Joint 2D, автоматически добавиться Rigidbody 2D, и у этого компонента параметры Linear Drag и Angular Drag, ставим на 0.5, чтобы веревка выглядела более правдоподобно.

Еще на сцену нужно добавить два Line Renderer, один для веревки, а другой для луча указателя.

Скачать все скрипты и демо проект:
https://www.patreon.com/posts/kak-sdelat-v-2d-23169048
Тестировалось на: Unity 5.6.0

Комментариев 8

Офлайн
Большое спасибо за урок!!!У меня 1 проблема Unity 5.0.0f выходит ошибка с надписью
UnityEngine.Rigidbody2D не содержит определение для freezeRotation не удалось найти метод расширения freezeRotation
Офлайн
Light 2 мая 2017
Давуд Ахмедов, все проекты пишутся для актуальной версии, на момент публикации.
Офлайн
А как сделать чтобы персонаж когда кидает веревку прицеплялся к концу веревки?Я имею ввиду тарзанки
Офлайн
Light 13 июня 2017
Давуд Ахмедов, повесить на перса HingeJoint2D, а потом в скрипте включать его и цеплять к последнему узлу самой веревки.
Офлайн
Light,
тогда персонаж будет просто телепортироваться к веревке.Я думал все вот так получится как тут в конец а там он просто создает веревку и никак на нее не реагирует Например вот тут у него получилась тарзанка как я себе и представлял https://www.youtube.com/watch?v=DTFgQIs5iMY&t=260s
Я как вот тут сделал хотел
Офлайн
Light 14 июня 2017
Давуд Ахмедов, я говорил о логическом направлении, куда копать, как говориться. Потому что, если веревка состоит из определенных узлов, то и перс должен быть таким же узлом по сути. Чтобы всё работало как надо, нужно переделывать частично код и взаимодействие с самой веревкой.

Если тебе для игры нужна тарзанка, можешь сделать заказ, пиши в ЛС.
Офлайн
Light,
я имею ввиду через простой 1 Line Renderer а не через узлы
Например если нажать кнопку E у появляется Line Renderer и у персонажа включается Distance Joint 2D и при этом чтобы Line Renderer и Distance join 2D с её точкой цепления перемещались вместе с персонажем
А если отпустить кнопку E то это все отключается
Я думал урок таким будет а не просто создание никак не реагирующей на персонажа веревки
Офлайн
TEEAAA 2 ноября 2017
Давуд Ахмедов,
есть на сайте урок
про тарзанку только вроде крюк-кошка , но принцип тот же
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика