10、2D物理系统

1、碰撞器和触发器

碰撞器

1、编辑碰撞器
2、选中触发器

1.1、碰撞的条件

  • 两个物体都要带有碰撞器
  • 其中一个带有刚体

生命周期

{
    // 进入碰撞器调用一次
    void OnCollisionEnter2D(Collision2D collision)  {
    }
    // 离开碰撞器
    void OnCollisionExit2D(Collision2D collision) {
    }
    // 碰撞期间, 调用多次
    void OnCollisionStay2D(Collision2D collision) {
    }
}

1.2、触发条件

2个物体 其中一个的碰撞器必须是勾选了 "是否触发"的这个选项
生命周期

{
    // 进入触发器
    void OnTriggerEnter2D(Collider2D collision)  {
    }
    // 离开触发器
    void OnTriggerExit2D(Collider2D collision) {
    }
    // 连续调用多次触发器
    void OnTriggerStay2D(Collider2D collision)  {
    }
}

2、物理材质

2D物理材质

摩擦力和反弹力

3、效果器

3.1、表面效果器(Surface Effector 2D)

表面效果器

使用表面效果器需要在盒碰撞器中选择 Used By Effector
其中三个选项可以选择SpeedSpeed VariationForce Scale

3.2、区域效果器(Area Effector 2D)

区域效果器

Force Magnitude表示对物体施加的力
Force Angle对物体施加力的角度

3.3、浮力效果器(Buoyancy Effector 2D)

浮力效果器

模拟流体行为,包括浮动和阻力相关的设置
Density:流体的密度,密度越大,碰撞体会下沉;密度越小,碰撞体会上浮。密度与流体相同的碰撞体会浮在流体中。
SurfaceLevel:定义浮力流体的表面位置,对象高于此线时,不会对其施加浮力,低于或相交时会施加浮力。
Linear Drag:影响对象在水中移动的阻力系数。
Angular Drag:影响对象在水中旋转的阻力系数。
Flow Angle:流体流动方向相对世界空间的角度,沿指定方向施加浮力。
Flow Magnitude:与Flow Angle结合使用,决定浮力的大小。
Flow Variation:随机改变流体力的值

3.4、2D点效果器(Point Effector 2D)

施加力以吸引或排斥一个点。
Force Magnitude 要施加的力的大小。(负数为吸引,正数为排斥)
Distance Scale 应用于源和目标之间距离的缩放。在计算此距离时,按该比值对距离进行缩放,因此可以改变有效距离,从而控制施力的大小。
Force Variation 要施加的力的大小变化。
Force Source 力源是吸引或排斥目标对象的点。从该点定义相对于目标的距离。
Force Target作用力目标 (Force Target) 是目标对象上由效应器施力的点。从该点定义相对于源的距离。
Force Mode 如何计算力。

4、2D其他物理碰撞器与恒力组件

4.1、多边形碰撞器(Edge Collider 2D)

多边形

通过鼠标点击线段包裹碰撞的物体

4.2、恒力(Constant Force 2D)

恒力组件

Force 每次物理更新时施加于 2D 刚体的线性力
Relative Force 每次物理更新时施加的线性力(相对于 2D 刚体坐标系)。
Torque 每次物理更新时施加于 2D 刚体的扭矩。

5、脚本与刚体的交互

public class Player : MonoBehaviour{
    Rigidbody2D r2;
    void Start(){
        r2 = transform.GetComponent<Rigidbody2D>();
    }
    void Update(){
        float x = Input.GetAxis("Horizontal");
        float y = Input.GetAxis("Vertical");
        if (x != 0 || y != 0)  { 
            r2.velocity = new Vector2(100 * x, 100 * y);
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容