目录
Box Collider2D 中的Layer Overrides
RigidBody2D 组件
Dynamic类型
Simulated 是让2D刚体以及所有子对象2D碰撞器和2D关节都能够模拟物理效果
Linear Drag 影响位置移动的阻力系数, 该值越大,物体受到的阻力越大
Angular Drag 影响旋转的阻力系数
Gravity Scale 默认是1, 填2就是受到两倍重力
Collision Detection :碰撞检测采用的算法
Discrete :离散检测算法,只会用新位置进行计算,速度过快会直接穿过物体,而不发生碰撞
比如说,一个子弹在这一帧的位置在一个cube的前方一捏捏,由于速度过快,下一帧直接跑到cube的后面去了,也就是说在这连着的两帧,他直接贯穿了这个cube
Continuous: 该算法会把这两帧中间走过的路程都进行检测,也就是说子弹再快也无法贯穿cube,会被检测碰撞,但比较消耗性能
这里关于材质:
睡眠:
Kinematic运动学类型
在该类型下,物体不受力的影响,只能通过代码控制旋转或移动
运动学刚体可以撞Dynamic 刚体,但是反过来Dynamic撞不了运动学刚体,
因为运动学刚体不会受到力的作用
Static类型
2D碰撞器(Edge Collider)
值得注意的一个是Edge Collider
添加这个碰撞器后就是一条线,我们可以自由编辑这条线,像是一些凹凸不平的地形就可以用这个碰撞器
有的碰撞器还会有什么Used by Effector (是否应用于效应器)
Used by Composite 是是否被应用于复合碰撞
这个主要就是一个空的根物体上挂一个复合碰撞器(Composite Collider 2D)
这个子物体勾选后就会把内部重复的范围框合并成一个完整的碰撞范围框
复合碰撞器添加后会自动添加一个Rigidbody 脚本,他们要组合使用
盒状碰撞器中有个参数:
Edge Radius 是指盒状碰撞器的四个角的圆润程度,0就是尖的,越大会变得越圆润
Box Collider2D 中的Layer Overrides
-
Layer Override Priority(图层覆盖优先级): 这个选项决定当有多个碰撞层级重写时,哪个重写将优先生效。它可以让你设置复杂的碰撞关系,例如当一个物体属于多个碰撞层级时。
-
Include Layers(包含层): 这里可以选择哪些额外的图层应该在判断Collider2D是否与其他Collider2D接触时被考虑在内。这允许你指定哪些图层的物体可以与当前的Collider2D发生碰撞。
-
Exclude Layers(排除层): 这里可以选择在判断Collider2D是否与其他Collider2D接触时应该排除的额外图层。这允许你明确指出哪些图层的物体不应当与当前的Collider2D发生碰撞。
-
Force Send Layers(强制发送层): 这里可以选择在Collider2D之间发生碰撞时,当前Collider2D可以向哪些图层的物体发送力。当物体之间碰撞并且需要施加物理影响时,可以使用这个选项。
-
Force Receive Layers(强制接收层): 这里可以选择在Collider2D之间发生碰撞时,当前Collider2D可以从哪些图层的物体接收力。这与Force Send Layers相对,决定了当前物体可以受到哪些图层的物体的影响。
-
Contract Capture Layers(收缩捕获层): 此选项允许你选择哪些图层将在Collider2D收缩时捕获另一个Collider2D。通常这用于触发器事件,当物体的Collider2D变小并可能脱离与其他物体的接触时。
-
Callback Layers(回调层): 在这里,你可以选择在Collider2D与其他Collider2D接触时,哪些图层将触发回调事件,例如报告碰撞或触发器事件。(就是OnTriggerEnter那些之类的函数)
收缩捕获层:
比如一个球正在与另一个碰撞器接触, 当这个球进行收缩的时候,它会和球脱离接触, 如果我在球的这个碰撞器中重写了这个捕获层,就是有指定那个碰撞器的收缩捕获层,他(球)仍然会保持与该碰撞器的
”接触“和触发
正常情况下一般是通过移动改变位置来进入和脱离(接触)状态
2D物理材质
恒定力Constant Force
效应器
区域效应器Area Effector
每个效应器都应该配合着rigidbody使用
效应器都需要将刚体设置为触发器并勾选应用于刚体
Use Collider Mask 就是效应器作用的对象层级,不勾选默认所有,勾选了就可以指定层级
Use Global Angle 是是否选择以世界坐标的方向为力的作用方向
在不勾选的情况下,默认以物体自身的方向为效应器力的方向
Force Angle ——>0°默认为选定 的方向的右方,180°默认向左
Force Magnitude 施加力的默认大小
Force Variation 在默认施加力的基础上进行随机变化的力,
拿图中举例,实际施加的力为→(35+0,35+30)
Force Target→
浮力效应器Buoyancy
主要用来实现小溪河流啥的漂浮和向左或右的水流冲击:
Density 是流体的密度,当物体的密度大于流体的密度时,物体下沉, 小于的时候就上浮
所以当物体沉在水中,可以调大Density来改善
Surface Level 定义浮力流体的表面位置,也就是一条线,当物体处于该线上方,则不会受到浮力,在交汇处及以下才会受到浮力
Linear Drag 是影响位移的阻力大小
Angular是影响旋转的阻力大小
点效应器Point Effector
其实也就是在两个点之间产生一个力(吸引或排斥)
力为正数是排斥
为负数是吸引
平台效应器Platform Effector(单向碰撞器)
可以用于制作跳跃平台之类的游戏,从一个平台底部跳跃穿过该平台,然后站在该平台上面
Rotational Offset→
类似于一个可从下往上穿的范围,在这条线以上的部分是不允许从任何角度穿过的,以下的部分允许从下往上穿过,可以通过设置偏移改变 这条线的位置
Surface Arc 也就是说在这个角度范围内的面,是不允许被穿过的
Use Side Friction 让平台边沿具有摩擦力:
如图红色箭头,让边缘墙壁具有摩擦力或是光滑可用该选项调整
Bounce 就让边缘墙壁是否具有弹力
Side Arc 定义左右两边响应的弧度,也就是范围
Surface Effector 表面效应器
可以用于制作一些类似于传送带的功能
Speed为正,传送带给予的力向右,否则向左
Force Scale 和Speed 会共同调节传送带的速度