游戏制作之路(43)固定关节

前面学习了铰链关节,它可以用来模拟像门的方式转动。这次将要来学习另一个关节是固定关节(Fixed Joint),这个关节主要用来让物体与物体之间临时的连接,或者让物体暂时固定。比如像一个羽毛粘在小鸟上,当风一吹,这根羽毛就要飞走,因为羽毛受到了风力,如果没有风力,它是不会飞出去的。

 

下面通过一个理想电梯例子来说明这个关节的作用。在前面的例子上,添加下面的物体,如下图:

游戏制作之路(43)固定关节

在这里添加两个cube,分别命名为wall1、wall2,然后再在中间添加一个cube,命名为Down,这是一个向下移动的电梯平台,并且为这个组件添加刚体(Rigidbody),设置好重力,就可以测试一下这个游戏了,如下图:

游戏制作之路(43)固定关节

你也许会很吃惊,这个电梯自动就往下跑了,根本等不到上面的球掉下来。如果在现实中,这个电梯是不合格的,因为电梯自己掉去了,人再走过去就会摔死的。因为电梯本身有质量,那么它就有重力,就会在重力的作用之下掉下去。为了让这个电梯不自己掉下去,必须给这个电梯添加一个力,让它维持在那里,当球从上面跌下来,撞击到电梯时才能启动向下运行。这时就可以使用固定关节,让电梯在那里不动。如下图增加:

游戏制作之路(43)固定关节

跟以前一样的方式,点击添加组件按钮,然后选择Physics,再选择Fixed Joint子菜单,就可以创建固定关节(Fixed Joint),如下图:

游戏制作之路(43)固定关节

从上图里,就可以看到有几个参数:

Connected Boby:连接刚体,用于指定关节要连接的刚体,若不指定则该关节,将于世界坐标系相连。

Break Force:断开力,设置关节断开的作用力大小。默认是无穷大。

Break Torque:断开扭矩,设置断开关节所需要的转矩,默认是无穷大。

添加这个组件之后,再运行测试一下,你会发现这时电梯不再动了,并且球跌到上面也不动了,这显然不符合我们的要求,我们想要的效果是平时不动,当球跌到它时就开始向下运动。要实现这个目标,必须修改断开力(Break Force),由于电梯的质量为1,如果设置小于9.8就会向下掉,如果大于这个数值就不会掉,因而把这个值设置为10,这样只有当球撞击之后才会断开这个关节,然后运行之后,如下图:

游戏制作之路(43)固定关节

运行撞断之后,这个组件就不见了,如下图:

游戏制作之路(43)固定关节

通过这个例子,我们学会了怎么样来使用固定关节,让游戏物体具有临时吸附功能。

https://blog.csdn.net/caimouse/article/details/51749579