如何理解Unity中的Rigidbody和Collider

Rigidbody(刚体)和Colider(触发器)的定义官方manual和CSDN上的其他文章已经有很多,就不再赘述。个人来说,即使读完了各种资料,还是对两者的区别和用途有些不理解,所以自己梳理了一下,在此记录。

1. 如果一个Sprite只有Rigidbody没有Colider会怎样?

因为有Rigidbody,也就是基本的物理属性,Sprite会受到重力影响落下。

因为没有Colider对Sprite之间的相互作用(碰撞)进行监测,没有Colider的Sprite和场景内的其他Sprite在同一位置时会直接无视对方(具体表现可能为穿过)。

2. 如果一个Sprite只有Colider没有Rigidbody会怎么样?

没有Rigidbody的Sprite不具备物理属性,不受重力等的影响,所以在场景内如同”幽灵”一样固定不动、可被“穿过”。

因为具备Colider,和其他Sprite在同一位置时能够被监测到,触发碰撞。作为Trigger时只需要监测而不需要碰撞,可以用isTrigger实现。

3. 这种设计令人(我)困惑的点在于什么?其合理性在于什么?

Unity将现实世界中的碰撞拆分成了两个部分,刚体和触发器。刚体用来定义Sprite的存在状态,触发器用来监测是否存在触发。

其合理性在于:

        a. 因为复杂性等原因,游戏世界所呈现的物理碰撞是对现实世界的模仿/假装而非复制。比如为了假装物体在地面上滚动,物体需要同时拥有Rigidbody和Colider,但是地面则不需要Rigidbody(否则地面会受重力影响落下)。

        b. 游戏中会出现现实世界中不存在的机制,如Trigger。没有Rigidbody的Trigger可以更灵活地存在在场景中的任意位置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值