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);
刚体不休眠