物理系统 碰撞 触发器 3

Rigidbody 2D组件 (刚体) 

一:重力

1、玩家添加Rigidbody 2D组件:

2、禁用重力  Gravity Scale 设置为 0

(有预设体的话,需要操作在inspector > Voerides > Apply All)


二:碰撞体  Box Collider 2D 组件

1、玩家添加 Box Collider 2D组件,勾选 Constrains 下 Freeze Rotation (这样刚体不会导致玩家旋转)

玩家抖动解决:(刚体为主体移动,而非玩家)


2、给建筑物添加 Box Collider 2D 组件 (不需要通过物理来移动建筑物,则不需要添加刚体 Rigidbody 2D)

3、调整碰撞体大小 Box collider 2D > Edit Collider > Scene 试图调整碰撞体大小


人物调整注意:碰撞体仅覆盖了 Ruby 的双腿,因为角色在碰撞之前需要能够稍微移到游戏对象的上方,这有助于使游戏更真实可信


三:瓦片地图碰撞体

1、Hierarchy 选择 TileMap > 添加组件 Tilemap Collider2D(此时所有的瓦片都有碰撞体)


2、去掉不需要碰撞的瓦片  

Project > Tiles>选择不需要碰撞的瓦片>找到Collider Type 属性 Sprite 改为 None 保存


3、优化瓦片地图

添加Composite Collider 2D 组件

Tilemap Collider 2D 组件 启用 Used By Composite

Rigidbody 2D 将 Rigidbody Body Type 设置 Staitc


四:触发器

触发器是一种特殊类型的碰撞体。触发器不会阻止移动,但是物理系统仍会检查角色是否会与触发器碰撞。当你的角色进入触发器时,你将收到一条消息,以便你可以处理该事件。  

触发物体添加 Box Collider 2D  > Is Trigger 选中


void OnTriggerEnter2D(Collider2D other);


刚体不休眠

你可能感兴趣的:(物理系统 碰撞 触发器 3)