unity中的HingeJoint与门

unity中的HingeJoint与门

在unity的建筑场景中,我们都会面对这样一个问题,建筑中门的运动的不自然,没有开门的效果,而不了解HingeJoint(铰链关节)的人习惯性的通过旋转门的方向来达到开门的效果,这样就会存在一个物体,开门时无法控制开门的幅度,门是在固定的条件下旋转,而不是像现实中受力的影响而偏移。这次主要介绍的是通过HingeJoint来控制开门的效果。

一、场景的搭建

在场景中通过Cube搭建出一个门,用独立的一个Cube当作人。场景图如下。
     
        unity中的HingeJoint与门_第1张图片
我们需要的效果是移动红色方块去推门,用方块把门推开。

二、门的设置

对门添加刚体和HingeJoint两个组件,在HingeJoint中进行设置,这个组件就是用来控制门的偏移。
unity中的HingeJoint与门_第2张图片
要控制门的旋转主要改变组件的Anchor和Axis两个属性,其他保持默认就行。其中Anchor是关节的锚点,物体是
绕锚 点旋转,Axis是锚点的轴向,控制物体旋转的方向。我设置的是让门绕着左边的门框旋转,方块向前推时,门往
里开,向后推时门向外开。

三、开门效果演示

在门之前时,当方块向前移动,可以推着门往里开,在门之后时,方块向后移动,可以推着门往外开。效果图如
下,左边的图是门往里开的,右边的图是门往外开的。
unity中的HingeJoint与门_第3张图片unity中的HingeJoint与门_第4张图片


四、总结

在unity中, HingeJoint 的运用能够使门的开关更真实, HingeJoint通过与别的物体连接来控制物体的偏移,一般用
在门、窗的开关,链子、钟摆的摇晃。unity中的关节组件常用的有FixedJoint( 固定关节 )、SpringJoint(弹簧关节)
和HingeJoint(铰链关节)。我们能够通过关节组件把两个物体连接起来,通过力的作用改变一个物体的移动让另一个
物体跟随移动,让物体的运动更真实。

你可能感兴趣的:(unity,关节)