Версия 2.2 ассета Wrapping rope включает в себя новую функцию обертывания движущихся объектов. Как она работает? Очень просто. Есть c# интерфейс IRopeInteraction, в котором декларировано два метода: GetPointVelocity и AddForceAtPosition. Первый нужен для получения скорости движения объекта в заданной точке, а второй для приложения к объекту силы. По сути эти методы аналогичны одноименным методам, которые предоставляет класс Rigidbody и которые использовались в прошлых версиях для взаимодействия с движущимися игровыми объектами. Теперь пользователь сам может написать реализацию этих методов, унаследовав свой собственный класс от интерфейса IRopeInteraction. После этого следует добавить класс с реализацией методов к игровому объекту. Для тех, кому не хочется заморачиваться, новая версия предоставляет целых два класса с реализацией этих методов: DefaultRopeInteraction — в нем реализован только метод GetPointVelocity и этого достаточно для обертывания движущихся объектов, и CharacterRopeInteraction — это пример двустороннего взаимодействия с веревкой анимированного персонажа. Вот как работает новая функция: