刚体 Rigidbody 2D组件(让物体有重力):
通常如果游戏物体运动,则需要➕刚体组件
Ps: 默认重力加速度可在顶部菜单Edit - Project setting - Physics 2D - Gravity属性设置(默认:-9.81)
- BodyType:
- Dynamic:动态,最仿真.
- Kinematic:运动,由代码控制.
- Static:静态,不作为运动(一般用于建筑物)
- Simulated:是否开启
- Mass:质量
- Linear Drag:移动阻力系数(类似风阻或太空;与表面摩擦力不同,摩擦力创建Physics Material进行定义)
- Angular Drag:旋转阻力系数(类似风阻或太空;与表面摩擦力不同,摩擦力创建Physics Material进行定义)
- Gravity Scale:G值
- Collision Detection:如何检测碰撞体之间的碰撞
- Constraint:定义对刚体运动的任何限制
碰撞体 XXXX Collider 2D组件(让物体接触不穿模,会挤压有弹性)
碰撞双方必须都有碰撞体,刚体必须其中有一个或双方都有
private void OnCollisionEnter2D(Collision2D collision)
{
//碰撞进入事件
print("我碰到了"+ collision.gameObject.name);
}
private void OnCollisionStay2D(Collision2D collision)
{
//碰撞中事件
}
private void OnCollisionExit2D(Collision2D collision)
{
//碰撞退出事件
}
因为碰撞双方都有相反的力(弹开),如果想做子弹打穿物体不需要弹开,则用Is Trigger
private void OnTriggerEnter2D(Collision2D collision)
{
//触发进入事件
print("我碰到了" + collision.gameObject.name);
}
private void OnTriggerStay2D(Collision2D collision)
{
//触发中事件
}
private void OnTriggerExit2D(Collision2D collision)
{
//触发退出事件
}