【Unity】11.8 关节

分类:Unity、C#、VS2015 编辑器

建立日期:2016-05-02 orm

1、简介

Unity提供了下面的关节组件:铰链关节(Hinge Joint)、固定关节(Fixed Joint)、弹簧关节(Spring Joint)、角色关节(Character Joint)、可配置关节(Configuration Joint)。 对象

本节简单介绍这些组件的含义。 游戏

2、铰链关节(Hinge Joint)

铰链关节(Hinge Joint)由两个刚体组成,该关节会对刚体进行约束,使它们就好像被链接在一个铰链上那样运动。它很是适用于对门的模拟,也适用于对模型链及钟摆等物体的模拟。 ci

一、添加铰链关节组件 get

依次打开菜单栏中的【Component】->【Physics】->【Hinge Jont】,便可为所选择的游戏对象添加铰链关节组件。 it

二、属性 io

·Connected Body:链接刚体。为关节指定要链接的刚体,若不指定则该关节将与世界坐标系相链接。 form

·Anchor:锚点。刚体可围绕锚点进行摆动,这里能够设置锚点的位置,该值应用于局部坐标系。 扩展

·Axis:轴。定义刚体摆动的方向,该值应用于局部坐标系。

·Use Spring:使用弹簧。勾选该项,则弹簧会使刚体和与其连接的主体造成—个特定的角度。

Spring:弹簧。当Use Spring参数开启时此属性有效。

Spring:弹簧力。该项用于设置推进对象使其移动到相应位置的做用力。

· Damper:阻尼。设置对象的阻尼值,数值越大则对象移动得越慢。

Target Position:目标角度。该顶用于设置弹簧的目标角度,弹簧会拉向此角度,以度为测量单位。

·UseMotor:使用马达。勾选该项,马达会使对象发生旋转。

·Motor:马达。当Use Motor参数开启时,此属性会被用到。

Target Velocity:目标速度。设置对象预期将要达到的速度值。

Force:做用力。设置为了达到目标速度而施加的做用力。

Free Spin:自由转动。勾选该项,则马达永远不会中止,旋转只会越转越快。

·Use Limits:使用限制。勾选该顶,则铰链的角度将被限定在最大值相最小值之间。

·Limits:限制。当Use Limits开启时,此属性将会被用到。

Min:最小值。设置铰链能达到的最小角度。

Max:最大值。设置铰链能达到的最大角度。

Min Bounce:最小反弹。设置当对象触到最小限制时的反弹值。

Max Bounce:最大反弹。该顼用于设置当对象触到最大限制时的反弹值。

·Break Force:断开力。设置铰链关节断开的做用力。

·BreakTorque:断开转矩。没置断开铰链节点所需的转矩。

单独的铰链关节要应用到一个游戏对象上,铰链或绕着Anchor属性所指定的点来旋转,按照Axis属性指定的轴来移动。不用给关节的Connected Body属性添加对象,只有当但愿关节的Transform属性依赖于附加对象的Transform属性时才为关节的Connected Body属性来添加对象。多个铰链关节也能够串联起来造成一条链条,能够给链条的每—个环添加关节,并向Connected Body那样添加到下一环上。

技巧:不须要指定Connected Body属性来运转关节。可调整Spring、Motor、Limits等属性来惊喜调整关节的行为状态。

3、固定关节(Fixed Joint)

固定关节组件用于约束一个游戏对象对另外一个游戏对象的运动。相似于对象的父子关系,但它是经过物理系统来实现而不像父子关系那样是经过Transform属性来进行约束。

固定关节适用于如下的情形:当但愿将对象较容易与另—个对象分开时,或者链接两个没有父子关系的对象使其一块儿运动,使用固定关节的对象自身须要有—个刚体组件。

一、添加固定关节组件

依次打开菜单栏中的【Component】->【Physics】->【Fixed Joint】选项,就能够为所选择的游戏对象添加固定关节组件。

二、属性

·Connected Body:链接刚体。指定关节要链接的刚体,若不指定则该关节将与世界坐标系相链接。

·Break Force:断开力。设置关节断开的做用力。

·Break Torque:断开转矩。设置断开关节所需的转矩。

有时游戏中会存在这样的情景:当但愿要某些游戏对象暂时或永久性的地粘在一块儿,这时就很适合使用固定关节组件。该组件不须要经过脚原本更改层级结构就能够实现想要的效果,只须要为那些要使用固定关节的游戏对象添加刚体组件便可。

可经过Break Force和BreakTorque属性来没置关节的强度极限,若是这些参数不是无穷大而是—个数值,那么当施加到对象身上的力或转矩大于此极限值时,固定关节将被销毁,其对对象的约束也就随即失效。

4、弹簧关节(Spring Joint)

弹簧关节组件可将两个刚体链接在—起,使其像链接着弹簧那样运动。

依次打开菜单栏中的Component->Physics->Spring Joint选顶,便可为所选择的对象添加弹簧关节组件。

其属性和前面介绍的属性类似,此处就不重复了。

弹簧关节容许一个带有刚体的游戏对象被拉向—个指定的目标位置,这个目标能够是另外一个刚体对象或者世界。当游戏对象离目标位置愈来愈远时,弹簧关节会对其施加一个做用力使其回到目标的原点位置,相似橡皮筋或者弹弓的效果。

当弹簧关节被建立后(预览游戏模式下),其目标位置是由从锚点到链接的刚体(或世界)的相对位置所决定的,这使得在编辑器中将弹簧关节设定给角色或其余游戏对象很是容易,可是若是经过脚原本生成一个实时的推拉弹簧的行为就相对比较困难。

若是想经过弹簧关节来控制游戏对象的位置,一般是创建一个带有刚体的空对象,而后将该空对象设置到Connected Regidbody属性上,这样就能够经过脚原本控制空对象的移动,这样一来,弹簧也会随着空对象的位移而移移动了。

5、角色关节(Character Joint)

角色关节主要用于表现布娃娃效果,它是扩展的球关节,可用于限制每个轴向上的关节。

依次打开菜单栏中的Component->Physics->Character Jont选项,就能够为所选择的游戏对象添加角色关节组件。

角色关节的属性和前面介绍的属性类似,此处仅介绍一些不重复的选项。

·Swing Axis:摆动轴。设置角色关节的摆动轴,以绿色的圆锥gizmo表示。

·Low Twist Limit:扭曲下限。设置角色关节扭曲的下限。

Limit:设置角色关节扭曲的下限值。

Bounciness:设置角色关节扭曲下限的反弹值。

Spring:设置角色关节扭曲下限的弹簧强度。

Damper:设置角色关节扭曲下限的阻尼值。

·High Twist Limit:扭曲上限。设置角色关节扭曲的上限。

·Break Force:断开力。控制角色关节断开所需的做用力。

·Break Torque:断开转矩。设置角色关节断开所需的转矩。

6、可配置关节(Configuration Joint)

可配置关节组件支持用户自定义关节,它开放了Physics引擎中全部与关节相关的属性,所以可像真他类型的关节那样来创造各类行为。

可配置关节有两类主要的功能:移动/旋转限制和移动/旋转加速度。

依次打开菜单栏中的Component->Physics-> Configuration Joint项,便可为所选择的对象添加可配置关节组件。

一、移动旋转限制

能够为每一个旋转轴和运动类型指定约束。针对X轴、Y轴以及Z轴运动可定义沿不一样轴的移动,而针对X轴、Y轴、Z轴旋转可定义沿不一样轴的旋转,这些属性能够被没定为Free(不受约束)、Limited(受自定义的限制)及Locked(锁定状态没法运动)。

1)移动限制:若是游戏对象某个轴的Motion属性设定为Limied,则可经过修改Limited属性值来设定该轴的运动约束值。对于平移运动,Linear Limited属性将没定该对象可以远离原点的最大距离,经过该属性下的Limit数值能够对Motion属性值为Limited的任何移动进行约束。

2)旋转限制:旋转限制与移动限制相相似,只是Angular Motion属性是与Angular Limit相关。Linear Limit属性设定了对3个轴在移动上的约束,而Angular Limit属性则设定了对于3个轴在旋转上的约束。

二、移动旋转加速度

使对象到达指定的位置或方向运动,或到达指定的速度或角速度。此系统的工做方式是:首先定义一个想要达到的目标,而后经过驱动力来提供加速度以便使其到达此目标,每个驱动都有一个模式,经过此模式可定义该对象当前的目标。

1)移动加速度X、Y、Z轴驱动属性使游戏对象沿着特定的轴来移动,每一个驱动模式指定的对象是朝着目标位置仍是目标速度抑或是二者兼而有之的运动方式。好比当X轴驱动设置为Position时,对象会朝着X轴的目标位置去移动。

当驱动模式为Position时,它的位置弹簧值将决定其如何朝着目标位置运动;一样,当驱动模式为Velocity时,它的最大做用力将决定该对象如何被加速至目标速度。

2)旋转加速度:旋转加速度属性为X轴角、YZ轴角驱动及插值驱动,其功能与移动驱动基本相同,只是插值驱动与角驱动在功能上表现不一样。能够在旋转驱动模式中选择是采用角驱动仍是插值驱动,但这两种驱动不能同时被使用。

相关文章
相关标签/搜索