QuickRope插件使用教程

  • QuickRope插件介绍
  • 插件demo演示说明
  • 如何快速创建一条绳子或锁链
  • 绳子编辑脚本QuickRope说明
  • 基本设置:
  • 物理属性设置:
  • 链接处的预制体属性的设置
  • Link Settings:
  • 绳子样条线可视化编辑器说明
  • 拓展功能说明(修改绳子长度、绳子断开)


QuickRope插件介绍

从插件的名字就可以知道,QuickRope,使用此插件可以让开发者快速创建绳子、锁链等链条的工具,并可以模拟这些绳子的物理属性,自动生成绳子,可以编辑绳子属性,创建一条你想要的绳子。

插件demo演示说明

  • demo1:Edit Rope Renderer
  • unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope

  • 点击左侧列表按钮即可看到扭曲的绳子,带星、花朵、八角形状的链条和电缆的效果绳。点击下方(Press To Play Physics)即可看到当前绳子的物理属性模拟效果,你也可以调整滑动条的参数来观看绳子的效果。
  • unity里面如何实现绳子缠绕效果 unity 绳子_unity_02


  • unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_03


  • unity里面如何实现绳子缠绕效果 unity 绳子_游戏_04

  • 绳子受到到重力下落,和绳子间关节相互作用力的物理效果。
  • demo2:Sandbox
  • unity里面如何实现绳子缠绕效果 unity 绳子_游戏_05

  • 演示了锁链吊起物体的效果,并可以控制锁链的长度。
  • demo3:Static Rope Renderer
  • unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_06

  • 静态的绳子,就是将你编辑好的绳子导出为静态模型,没有物理效果。

如何快速创建一条绳子或锁链

  • 创建绳子
    点击菜单栏——GameObject——3D Object——QuickRopes——Create Rope At Origin,即可创建一根默认材质的绳子,
  • unity里面如何实现绳子缠绕效果 unity 绳子_游戏引擎_07

  • 你可以新建材质球,赋予你绳子的贴图到材质球,再将材质球赋予绳子的渲染设置:
  • unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_08

  • 你就可以看到你的绳子的初步样子了。
  • 创建锁链
    同理创建锁链的方法,依次点击菜单栏——GameObject——3D Object——QuickRopes——Create Chain At Origin,即可看到插件自动生成锁链的初步效果。
  • unity里面如何实现绳子缠绕效果 unity 绳子_游戏_09

绳子编辑脚本QuickRope说明

基本设置:

unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_10

属性

说明

Max Link Count

创建绳索时生成的最大链接数

Link Spacing

设置每个链接之间的控制,链接多的应设置小点,反之设置大一些

Can Resize

如果勾选,绳子将会缓存你设置的最大链接数的关节在绳子下,当改变长度时,最大延伸长度即为最大链接数

Use Physics

默认勾选,使用物理属性,会为每个链接生成关节(Joints)和刚体

Default Prefab

链接处生成的预制体,为空时,你需要自定义绳子的网格渲染器

Default Scale

设置链接预制体的大小比例乘数,此处(设置的值 * 预制体的Scale)为链接预制体的Scale大小

Alternate Rotations

如果勾选,偶数链接关节将旋转90度

Position 、Euler Rotation、Scale

设置链接预制体的位置、旋转、大小的偏移

物理属性设置:

unity里面如何实现绳子缠绕效果 unity 绳子_unity_11

属性

说明

Mass

设置绳子质量

Drag

设置拖动的力

Angular Drag

设置角度拖动的力

Use Gravity

是否启用重力

Is Kinematic

是否启用运动学(为True时,绳子不受物理引擎驱动)

Interpolate

设置插值

CollisionDetectionMode

设置碰撞模式

Constraints

设置约束

Break Force

设置绳子断裂的力

Break Torque

设置绳子断开时的扭矩

Twist Limit

设置扭曲的极限

Swing Limit

设置绳子摆动极限

Spring

设置绳子的弹力

Damper

设置绳子的阻尼器值

Collider Type

设置链接处预制体的碰撞器类型

链接处的预制体属性的设置

unity里面如何实现绳子缠绕效果 unity 绳子_unity里面如何实现绳子缠绕效果_12

Link Settings:

unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_13

属性

说明

Is Looped

设置样条曲线是否要被循环。如果样条线上只有2个点,这将为样条线添加第三个点

EvenlyDistribute

如果此设置为true,则样条点算法将尝试均匀地沿着样条线分布其点,从而使关节填充样条线

Output Resolution

此值是点分布的“搜索”值。默认情况下,它被设置为1000,这意味着样条曲线将迭代自己1000次,以试图沿着自己分配点。平均低值会使关节展开,放置得不那么准确

Edit InPlayMode

当此选项设置为true时,它允许您在播放模式期间在场景视图中查看样条曲线编辑器(仅限编辑器)

绳子样条线可视化编辑器说明

unity里面如何实现绳子缠绕效果 unity 绳子_游戏_14

  1. Root:
    绳子的根节点,根控制将移动整个绳索游戏对象。这是不能从游戏对象原点移动到的唯一控制点。
  2. Add Control Point:
    当单击时,将添加一个新的控制点。所添加的点将被放置在此点的原点处。
  3. Control Point:
    样条曲线相交的可移动点。
  4. Control Tangent
    控制控制点之间样条曲线曲线的可移动点。

拓展功能说明(修改绳子长度、绳子断开)

  1. 动态改变绳子的长度(模拟绳子拉伸、升降机功能)
    插件中RopeController脚本写好了控制绳子长度的功能:
  2. unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_15

  3. 主要是控制Rope对象的Velocity属性的值来动态修改绳子的长度
    只要将该脚本挂载到绳子上,按下键盘的上下键来控制绳子的长度。
  4. 绳子断裂(模拟钢丝断裂功能)
    我们可以通过脚本修改绳子QuickRope对象的BreakForce的值不等于无穷力,此时绳子链接处关节不再相互约束,从而产生一个相互作用力,互相弹开,形成一个绳子断开的效果:
public QuickRope rope ;//声明绳子对象
......
//绳子断开的方法,设置任意不同于Mathf.Infinity的值即可
private void BreakRope()
 {
   rope.defaultJointSettings.breakForce = 10;//
 }

但是你会看到绳子的全部链接都会断开:

unity里面如何实现绳子缠绕效果 unity 绳子_unity里面如何实现绳子缠绕效果_16


如果你想其中一个链接断开,怎么办呢,我们可以看到绳子上的每个链接节点都有这么一个组件【Character Joint】,它身上也有一个BreakForce属性:

unity里面如何实现绳子缠绕效果 unity 绳子_Unity绳子插件Rope_17


我们可以这样写:

public CharacterJoint breakJoin;//声明一个CharacterJoint对象
    //调用绳子断裂方法时,设置断裂力不同于Mathf.Infinity的值即可
    private void BreakRope()
    {
        breakJoin.breakForce = 1;
    }

绳子某一个链接点断裂效果:

unity里面如何实现绳子缠绕效果 unity 绳子_游戏引擎_18


也可以写绳子断裂之后触发的事件。