我故意重新发布了这个帖子,因为之前的版本因缺乏足够的技术背景被移除。这样做是公平的,所以这里是关于如何在Unity中构建它的更高级别概述。

抓绳子与我的物理驱动的角色控制器集成,使用Rigidbody2D力而不是直接移动玩家。当附着时,系统维持弹性绳子的长度,同时保留足够的切向速度来产生自然的晃动。

为了支持弯曲,我将绳子表示为包含主锚点和有限数量的接触点的路径。系统沿着这些点之间的区域进行射线检测,并在绳子遇到或移开障碍物时更新路径。

一条LineRenderer显示出结果路径,而物理约束与视觉表示分离。

最困难的部分是防止在拐角处出现不稳定的接触点,确定何时应释放弯曲,并保持可用绳子长度一致,尤其是当更多的绳子绕过几何体时。经过几个早期实现之后,我最终采用了这种方法。

抓绳子正在为Hello World开发,使用我之前在这里提到的模块化物理控制器:

https://www.reddit.com/r/Unity3D/s/Vtkn0W4l46

对于已经实现类似功能的开发者,您使用了接触点路径还是模拟整个绳子?