Unity-2D物理引擎、铰链、效应器

RigidBody2D

Unity-2D物理引擎、铰链、效应器_第1张图片
rigidbody2d.png

Body Type
Dynamic/动态:用于主动碰撞型,运动型的刚体
Kinematic/运动:相当于3D的刚体勾选了Is Kinematic,用于运动学刚体。
Static/静态:用于非主动碰撞,静态的刚体,有无限质量,节省性能。

Material:用这个来指定所选的2D碰撞机关联到2D刚体上的常用材料
Simulated:选中模拟选项,2D刚体将会与任何附加了2D碰撞机和2D关节发生仿真物理效果,如果禁用,则这些组件不与发生仿真物理效果,下面的更多细节会与该选项关联
Use Auto Mass:如果你想2D刚体从对撞中检查物体质量。
Mass:定义2D刚体质量。如果你选中了Use Auto Mass,这个选项为灰色的。
Linear Drag:影响位置运动的阻力系数。
Angular Drag:影响旋转运动的阻力系数。
Gravity Scale:明确物体受到重力的程度

Collision Detection:定义2D碰撞器之间是如何检测碰撞的
Discrete
当你设置碰撞检测为分离时,游戏物体上的2D刚体和2D碰撞在发生作用时可以重叠或者穿过其他物体时做一次物理效果更新。如果他们移动的足够快的话,碰撞会关联一次在一个新的位置。当2D刚体移动,仅在新位置碰撞被检测。
Continuous
当碰撞检测设置为连续,游戏物体的2D刚体2D碰撞没发生重叠或者穿过的时候都会更新检测,相反,U3D会计算任何一次2D碰撞即碰撞点,物体移动就有检测。注意,这比分离检测使用更多的CPU性能。确保所有2D刚体移动时检测到碰撞。

Sleeping Mode:如何定义游戏物体在睡眠去保存处理时间。
Never Sleep:睡眠被禁用(在可能的情况下应该避免它。因为它会影响系统资源)
Start Awake:游戏开始就是清醒的。
Start Asleep:游戏开始是睡眠的,但可以被碰撞。

Interpolate:如何定义游戏对面运动插值之间在物理更新(有用的时间去)
None:没有移动平滑应用
Interpolate:运动平滑基于先去帧中对象的位置
Extrapolate:基于下一帧中位置来推算平滑运动

Constraints:定义2D刚体的一些限制.
Freeze Position:停止2D刚体在世界上的X和Y轴的运动。
Freeze Rotation:停止2D刚体围绕Z轴的旋转。


Collider2D [2D碰撞]

BoxCollider2D [盒碰撞器2D]
Material:物理材质。
Is Trigger:是否是触发器。
Used By Effector:是否使用效应器。
Offset:碰撞器的偏移
Size:矩形的宽度和高度。

Unity-2D物理引擎、铰链、效应器_第2张图片
BoxCollider2D_Inspector.png
Unity-2D物理引擎、铰链、效应器_第3张图片
BoxCollider2D.png

CircleCollider2D [圆形碰撞器2D]
Material:物理材质。
Is Trigger:是否是触发器。
Used By Effector:是否使用效应器。
Offset:碰撞器的偏移
Radius:碰撞器的半径

Unity-2D物理引擎、铰链、效应器_第4张图片
CircleCollider2D_Inspector.png
Unity-2D物理引擎、铰链、效应器_第5张图片
CircleCollider2D.png

PolygonCollider2D [2D物理碰撞器]
Material:物理材质。
Is Trigger:是否是触发器。
Used By Effector:是否使用效应器。
Offset:碰撞器的偏移
PathCount:多边形的路径数
Points:在局部坐标空间定义该碰撞器形状的角点

Unity-2D物理引擎、铰链、效应器_第6张图片
PolygonCollider2D_Inspector.png
Unity-2D物理引擎、铰链、效应器_第7张图片
PolygonCollider2D.png

EdgeCollider2D [2D边碰撞器]
Material:物理材质。
Is Trigger:是否是触发器。
Used By Effector:是否使用效应器。
Offset:碰撞器的偏移
EdgeCount:获取边数
PointCount:获取点数
Points:获取/设置该点列表定义多条连续的边

Unity-2D物理引擎、铰链、效应器_第8张图片
EdgeCollider2DInspector.png
Unity-2D物理引擎、铰链、效应器_第9张图片
EdgeCollider2D.png

Composite Collider 2D[2D组合碰撞器]
复合碰撞体,它可以结合其他的碰撞体生成一个大的碰撞体。与上面的属性相比多了下面几个:
Geometry Type:几何形状类型
1.Outlines,线性形式,类似Edge Collider 2D;
2.Polygons,多边形形式,类似Polygon Collider 2D。
Generation Type:产生的类型
1.Synchronous,只要其他的Collider一发生变化,该几何形状就会立刻发生变化;
2.Manual,使用CompositeCollider2D.GenerateGeometry()方法才能生成,或者点击Regenerate Geometry按钮。
Vertex Distance:顶点与顶点之间的最小间距,小于该间距的点只会保留一个。


Joint 2D [2D铰链]

Distance Joint 2D

距离铰链:您可以使用这个关节来构建需要反应的物理对象,就好像它们通过可以旋转的刚性连接连接在一起。
使用方案 [A](不勾选Max Distance Only),您有一个固定长度的连接,例如骑自行车上的两个轮子。
使用方案 [B](勾选Max Distance Only),您有一个受约束的长度连接。 使用自行车的例子,它的轮子可以靠得更近,但不会比你指定的距离更远; 一个喜剧小丑的自行车!

Unity-2D物理引擎、铰链、效应器_第10张图片
DistanceJoint2DInspector.png

Enable Collision:是否允许这两个连接的碰撞器发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算连接后的锚点。
Anchor:自身锚点。
Connected Anchor:连接刚体锚点。
Auto Configure Distance:自动计算距离。
Distance手动指定距离
Max Distance Only:如果启用,关节只强制执行最大距离(即,物体仍然可以靠近)。 如果禁用,则对象之间的距离是固定的。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。

Fixed Joint 2D 固定铰链

固定铰链可以构造需要反应的物理物体,就好像它们是刚性连接一样:它们不能彼此离开,它们不能靠近在一起,并且它们不能相对于彼此旋转, 如由刚性固定在一起的部分组成的桥。
你也可以使用这个关节创建一个可以弯曲的较不刚性的连接; 由略微柔韧的部分组成的桥梁。

Unity-2D物理引擎、铰链、效应器_第11张图片
FixedJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Damping Ratio:阻尼比,要抑制弹簧振动的程度:在0到1的范围内,值越高,运动越少。
Frequency:当物体接近你想要的分离距离时,弹簧发生振荡的频率(以每秒周期数测量):在1到1,000,000的范围内,数值越高,弹簧越硬。 请注意,如果频率设置为0,则弹簧将完全变硬。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。

Friction Joint 2D 摩擦关节

摩擦关节构建需要反应的物理对象,就好像它们有摩擦一样。 它们可以抵抗线性运动或角运动,或者线性运动和角运动。 如:
一个可以旋转但抵抗这种运动的平台。
抵抗线性移动的球。
(球的摩擦与物体的速度有关,而不是任何碰撞,它的作用类似于在Rigidbody2D中设置的线性阻力和角度阻力,区别在于摩擦接头2D可以选择最大的力和扭矩设置。)

Unity-2D物理引擎、铰链、效应器_第12张图片
FrictionJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Max Force:设置连接对象之间的线性(或直线)移动 - 高值可抵抗对象之间的线性移动。
Max Torque:设置连接对象之间的角度(或旋转)移动 - 高值可抵抗对象之间的旋转移动。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。

Hinge Joint 2D 合页铰链

您可以使用这个关节来构建需要作出反应的物理对象,就好像它们与旋转关节相连接。 如:
水平部分连接到底座的跷跷板枢轴。 (使用关节的角度极限来模拟跷跷板运动的最高点和最低点。)
一把用铰链枢轴连接在一起的剪刀。 (您可以使用关节的角度极限来模拟关节和关节的最大开度。)
一个简单的车轮连接到汽车车身,车轮的中心连接到汽车。 (在这个例子中,您可以使用接头的电机来旋转车轮。)

Unity-2D物理引擎、铰链、效应器_第13张图片
HingeJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Use Motor:是否使用马达。
Motor Speed:马达速度。
Maximum Motor Force:马达给的最大的力,使刚体达到motor speed速度。
Use Limits:是否使用旋转角度限制。
Lower Angle:限制最小旋转角度。
Upper Angle:限制最大旋转角度。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。

Relative Joint 2D 相对位置铰链

保持彼此分开的距离,就好像他们无法远离彼此或靠得更近一样。 (你决定彼此距离很远,距离可以实时改变。)
只能以特定的角度相对旋转。 (你决定角度。)
有些用途可能需要连接方式灵活,例如:太空射击游戏,玩家可以使用额外的枪电池。 您可以使用相对关节来追踪随枪射击电池,但让它们与玩家一起旋转,无滞后。
某些用途可能需要一个可配置的力量,例如:相机跟随玩家使用可配置力量进行跟踪的游戏。

Unity-2D物理引擎、铰链、效应器_第14张图片
RelativeJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Max Force:设置连接对象之间的线性(直线)偏移量 - 高值(高达1,000)使用高强度来保持偏移量。
Max Torque:设置连接物体之间的角度(旋转)移动 - 高值(高达1,000)使用较高的力量来保持偏移量。
Correction Scale:调整关节以确保其行为符合要求。 (增加最大力量或最大力矩可能会影响行为,使关节不能达到目标,使用此设置来纠正它。)默认设置0.3通常是合适的,但它可能需要调整0和1之间的范围。
Auto Configure Offset:自动设置和保持连接对象之间的距离和角度。 (选择此选项意味着您不需要手动输入线性偏移和角度偏移。)
Linear Offset:线性偏移。
Angular Offset:角度偏移。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。

Slider Joint 2D 滑动条铰链

您可以使用此关节来构建需要作出反应的物理对象,就好像它们在一条线上连接在一起。 如:
一个可以上下移动的平台。 当有东西落地时,平台会向下移动,但决不能横向移动。 您可以使用此关节来确保平台永远不会超出特定限制。 使用电机使平台向上移动。

Unity-2D物理引擎、铰链、效应器_第15张图片
SliderJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Auto Configure Angle:选中此框可自动检测两个物体之间的角度,并将其设置为两个物体之间接缝保持的角度。 (通过选择这个,你不需要手动指定角度。)
Angle:手动设置两个物体间角度。
Use Motor:是否使用马达
Motor Speed:马达速度
Maximum Motor Force:使物体达到motor speed的最大力。
Use Limits:是否使用滑动位置限制
Lower Translation:位置限制最低点。
Upper Translation:位置限制最高点。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。

Spring Joint 2D 弹簧铰链

您可以使用此接头构建需要反应的物理对象,就好像它们使用弹簧或允许旋转的连接连接在一起。 如:
一个身体的角色是由多个对象组成的,这些对象的行为好像是半刚性的。 使用弹簧接头将角色的身体部位连接在一起,使他们可以相互弯曲。 您可以指定身体部位是否松散或紧密地保持在一起。

Unity-2D物理引擎、铰链、效应器_第16张图片
SpringJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Auto Configure Distance:选中此框可自动检测两个物体之间的距离,并将其设置为两个物体之间接缝保持的距离。
Distance:手动设置两物体间距离。
Damping Ratio:要抑制弹簧振动的程度:在0到1范围内,值越高,运动越少。
Frequency:当物体接近你想要的分离距离时,弹簧发生振荡的频率(以每秒周期数衡量):在0到1,000,000的范围内 - 数值越高,弹簧越硬。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。

Target Joint 2D 目标铰链

您可以使用这个关节来构造需要移动到指定目标位置并停留在那里直到选择另一个目标位置或关闭的物理对象。 如:
一个游戏,玩家拿起蛋糕,用鼠标点击,然后将它们拖到板上。 你可以用这个关节将每个蛋糕移动到盘子上。
您也可以使用关节来允许对象挂起:如果锚点不是质心,则对象将旋转。 如:
玩家拿起盒子的游戏。 如果他们使用鼠标单击从角落挑选一个框并拖动它,它将从光标悬挂。

Unity-2D物理引擎、铰链、效应器_第17张图片
TargetJoint2DInspector.png

Anchor:关节的终点连接到该对象的位置。
Target:连接的另一端试图移动到的地方。
Auto Configure Target:选中此框可自动将关节的另一端设置为对象的当前位置。 (当您移动物体时,此选项非常有用,因为它将初始目标位置设置为当前位置。)请注意,选择此选项时,目标在您移动物体时发生变化; 如果该选项未被选中,它将不会改变。
Max Force:设置试图将对象移动到目标位置时关节可应用的力。 数值越高,最大力越大。
Damping Ratio:要抑制弹簧振动的程度:在0到1范围内,值越高,运动越少。
Frequency:当物体接近所需的分离距离时,弹簧发生振荡的频率(以每秒周期数测量):在0至1,000,000范围内,数值越高,弹簧越硬。
Break Force:指定打断所需的力,然后删除关节。 默认力无穷大,无法打断。

Wheel Joint 2D

您可以使用该关节来构造需要作出反应的物理对象,就好像它们与旋转支点相连,但不能从指定的线移开。 如:
用电机模拟车轮以驱动车轮,以及确定允许悬架运动的线路。

Unity-2D物理引擎、铰链、效应器_第18张图片
WheelJoint2DInspector.png

Enable Collision:允许连接的两个物体发生碰撞。
Connected Rigid Body:指定连接的刚体。
Auto Configure Connected Anchor:自动计算锚点。
Anchor:自身锚点。
Connected Anchor:连接物体的锚点。
Damping Ratio:要抑制弹簧振动的程度:在0到1范围内,值越高,运动越少。
Frequency:当物体接近所需的分离距离时,弹簧发生振荡的频率(以每秒周期数测量):在0至1,000,000范围内,数值越高,弹簧越硬。
Angle:针对悬架的旋转角度
Use Motor:在车轮上施加电机力量?
Motor Speed:电机使目标到达速度(每秒度数)。
Maximum Motor Force:施加在物体上的最大力量以达到所需的速度。
Break Force:打断铰链并删除关节所需的力。 Infinity 意味着不可打断。
Break Torque:打断铰链并删除关节所需的扭矩。 Infinity 意味着不可打断。


Effector 2D:[2D效应器]
效应器是什么东西?上面不是说用Constant Force 2D实现一个多重力共存的效果嘛,更好的实现方式就是使用效应器,它能给一定区域内的物体同时作用一个力。

  • 1.PointEffector2D,模拟2D排斥与吸引效果。
  • 2.SurfaceEffector2D,模拟2D物体表面方向力。
  • 3.AreaEffector2D,模拟2D物体内部一个方向力。
  • 4.PlatformEffector2D,模拟2D 物体平台的方向通过性。
  • 5.Buoyancy Effector2D,模拟2D浮力效果。
Unity-2D物理引擎、铰链、效应器_第19张图片
Effector.png

Area Effector 2D 区域效应器
区域效应器对制定的一个2D区域施加一个力,注意区域使用Collider 2D来制定,Collider 2D上需要勾选Used By Effector和Is Trigger,否则会和其他物体发生碰撞。

Unity-2D物理引擎、铰链、效应器_第20张图片
AreaEffector2DInspector.png

Use Collider Mask:是否使用Collider Mask属性,默认状态下效应器对所有刚体都会施加里;
Collider Mask:选择Layer,用于指定会被效应器影响的物体;
Use Global Angle:勾选时,Angle属性会以全局形式进行处理;
Force Angle:力的角度;
Force Magnitude:力的大小;
Force Variation:力变化的大小,用于给力增加一个随机量;
Drag:线性力的阻力;
Angular:角速度的阻力;
Force Target:
1.Collider,目标点被定义为碰撞器的当前位置。 如果碰撞器没有位于质心处,在这里施加力可能会产生扭矩(导致目标旋转)。
2.Rigidbody:目标点被定义为刚体的当前质量中心。 在这里施加力量永远不会产生扭矩(导致目标旋转)。

Buoyancy Effector 2D 浮力效应器
浮力效应器定义了简单的流体行为,设置流体的阻力、浮动和流动。甚至可以控制流动发生在流体下面。

Unity-2D物理引擎、铰链、效应器_第21张图片
BuoyancyEffector2DInspector.png

Use Collider Mask:是否使用Collider Mask属性,默认状态下效应器对所有刚体都会施加里;
Collider Mask:选择Layer,用于指定会被效应器影响的物体;
Surface Level:当刚体完全小于该表面时,区域才会施加浮力;
Density:影响碰撞体行为的效应流体的密度
Linear Drag:影响物体位置移动的阻力系数 - 仅适用于流体内部。
Angular Drag:影响物体旋转运动的阻力系数 - 仅适用于流体内部。
Flow Angle:流体流动方向的世界空间角度(度)。
Flow Magnitude:流体流动力的“力量”。 结合流体角度,这指定了施加到流体内物体的力的水平。 幅度也可以是负的,在这种情况下,力以180度施加到流角。
Flow Variation:在这里输入一个值来随机改变流体力量。 您可以指定一个正或负的变化来随机添加或减少流体

Point Effector 2D 点效应器
以当前区域Transform的坐标为中心,产生吸引力或排斥力,可以做到类似小行星围绕地球旋转的效果。

Unity-2D物理引擎、铰链、效应器_第22张图片
PointEffector2DInspector.png

Use Collider Mask:是否使用Collider Mask属性,默认状态下效应器对所有刚体都会施加里;
Collider Mask:选择Layer,用于指定会被效应器影响的物体;
Force Magnitude:要应用的力量的大小。
Force Variation:要施加的力的大小的变化。
Distance Scale:缩放应用于源和目标之间的距离。 在计算距离时,按照这个量来缩放,从而允许改变有效距离,从而控制施加的力的大小。
Drag:应用于刚体的线性阻力。
Angular Drag:适用于刚体的角阻力
Force Source:力量源(吸引或排斥目标物体的点)。
Collider:力量源被定义为碰撞器的位置.
Rigidbody:力量源被定义为刚体的位置.
Force Target 力量目标(效应器施加任何力量的目标物体上的点)。
Collider:目标点被定义为碰撞器的位置。 如果碰撞器没有位于质心处,在这里施加力可能会产生扭矩(导致目标旋转)。
Rigidbody:目标点被定义为刚体的当前质量中心。 在这里施加力量永远不会产生扭矩(导致目标旋转)。
Force Mode:如何计算力量。
Constant:忽略源和目标之间的距离而施加力。
Inverse Linear:该力是作为源和目标之间的距离的反线性函数而施加的。 当源和目标处于相同的位置时,将施加全力,但当它们分开时力会线性下降。
Inverse Squared:该力是作为源和目标之间的距离的反平方函数而施加的。 当源和目标处于相同位置时,将施加全部力,但当它们分开时力会平方下降。 这与真实世界的引力类似。

Platform Effector 2D 平台效应器
首先使用该效应器需要去除Is Trigger选项,平台效应器可以实现单向碰撞、去除边侧碰撞的效果。

Unity-2D物理引擎、铰链、效应器_第23张图片
PlatformEffector2DInspector.png

Use Collider Mask:是否使用Collider Mask属性,默认状态下效应器对所有刚体都会施加里;
Collider Mask:选择Layer,用于指定会被效应器影响的物体;
Use One Way:应该使用单向碰撞行为吗?
Use One Way Grouping:确保由单向行为禁用的所有联系人对所有碰撞者都起作用。 当通过平台的对象上使用多个碰撞器时,这非常有用,它们都需要作为一个组一起行动。
Surface Arc:以“上”为中心的弧的角度定义了不允许碰撞器通过的表面。 任何超出这个弧的地方都被认为是单向碰撞。
Use Side Friction:平台两边侧是否使用摩擦?
Use Side Bounce:平台两边侧是否使用反弹?
Side Arc:定义平台侧面的弧的角度以效应器的局部“左”和“右”为中心。 这个弧内的任何碰撞法线都被认为是“侧面”行为。

Use One Way:是否允许一方通行;
Use One Way Grouping:当多个平台效应器启用一方通行时,启用该值;
Use Side Friction:边侧是否使用摩擦力;
Use Side Bounde:边侧是否使用弹力;
Side Arc:边侧的角度,只有法线与其垂直的才算是边侧。

Surface Effector 2D 表面效应器
首先使用该效应器需要去除Is Trigger选项,表面效应器可以实现传送带的效果。
Force Scale:允许调整施加里的比例,最好不要设为1,不然会抵消掉跳跃移动等力。

Unity-2D物理引擎、铰链、效应器_第24张图片
SurfaceEffector2DInspector.png

Use Collider Mask:是否使用Collider Mask属性,默认状态下效应器对所有刚体都会施加里;
Collider Mask:选择Layer,用于指定会被效应器影响的物体;
Speed:沿着表面保持的速度。
Speed Variation:速度的随机增加(0和速度变化值之间的任意值)将应用于速度。 如果在此输入负数,则将应用速度的随机降低。
Force Scale:当效应器试图沿着表面达到指定的速度时,允许缩放施加的力。 如果为0,则不施加力,则被有效地禁用。 如果1则应用全力。 但是施加全力会轻易地抵消施加到目标物体上的任何其他力,例如跳跃或其他运动力。 建议值小于1。
Use Contact Force:是否应该在表面和碰撞器之间的接触点施加力? 使用接触力可以导致目标物体旋转,而不使用接触力不会。
Use Friction:接触表面时应使用摩擦吗?
Use Bounce:接触表面时是否应该使用反弹?

你可能感兴趣的:(Unity-2D物理引擎、铰链、效应器)