请选择 进入手机版 | 继续访问电脑版
提问

刚体与碰撞

Unity AR/VR游戏应用开发  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2019-3-6

跳转到指定楼层
Mass 刚体的质量,单位是千克(kg)
Drag 空气阻力,0代表没有空气阻力,无限大的值代表物体会立即停下来(惯性消失)。
Angular Drag 物体受到一个扭力旋转时的阻力,0代表没有阻力,但是需要注意的是无限大的值并不能让物体立即停止旋转。
对应我们在玩游戏时里面,在某个地形里面可能会有更大的阻力,也就是会有减速效果。
Use Gravity 是否受重力影响
Is Kinematic 选中时,物体不会受到物理物理引擎的影响,只能通过修改Transform移动物体。
Interpolate 插值,如果发现刚体移动有卡顿,可以尝试选择此选项。
None 不使用插值
Interpolate 根据上一帧的Transform进行平滑
Extrapolate 根据估算的下一帧的Transform进行平滑
Collision Detection 碰撞检测的方式,当你的刚体快速运动时,可能会出现穿透的现象,可以设置这个选项。 Discrete 离散检测,性能较高,默认值
Continuous 连续检测。使用此选项时,物体与其他动态Collider(刚体)使用离散检测;与其他静态Collider使用连续检测。如果其他刚体设置为了Continuous Dynamic,会使用连续检测和这个刚体进行碰撞检测。这个选项非常影响性能,如果没有快速运动物体的碰撞检测问题,保持Discrete设置
Continuous Dynamic 动态连续检测。如果其他物体是Continuous或Continuous Dynamic,与这个物体碰撞时会使用连续检测。也会和静态Collider使用连续检测。对于其他的collider(标记为Discrete的Rigidbody)使用离散检测。。用于快速移动的物体。
Constraints 约束刚体的运动Freeze Position 选中后刚体不会在对应的轴上移动
Freeze Rotation 选中后刚体不会在对应的轴上旋转
碰撞器
一般碰撞器能使用BOX,就尽量使用BOX,更加节省性能,不到万不得已不使用Mesh这个碰撞器,太耗费性能了。
判定两个物体能否发生碰撞,可以根据Unity官方的表格来参考:
        
碰撞触发条件
     
   
   
静态对撞机
  
刚体对撞机
  
运动刚体碰撞器
  
静态触发器碰撞器
  
刚体触发器碰撞器
  
运动刚体触发器对撞机

   
静态对撞机
  
  
ÿ
  
  
  
  

   
刚体对撞机
  
ÿ
  
ÿ
  
ÿ
  
  
  

   
运动刚体碰撞器
  
  
ÿ
  
  
  
  

   
静态触发器碰撞器
  
  
  
  
  
  

   
刚体触发器碰撞器
  
  
  
  
  
  

   
运动刚体触发器对撞机
  
  
  
  
  
  
总的来说,两个物体能否发生碰撞,需要满足三要素:
1、 这两个物体都要有碰撞器
2、 其中一个带有刚体组件
3、 其中至少一个物体(必须运动的)必须带有碰撞器(collider)+刚体(Rigidbody),另一个物体(可以静止也可以运动)也必须至少带有collider。
详细解释是这样的:
(1)添加了CharacterController组件后,人物将不受力影响,这时即使加上Rigidbody组件,并启用Use Gravity。
人物也不会受重力影响,在脚本中通过rigidbody对人物施加力也是无效的。也就是说CharacterController屏蔽了Rigidbody的所有属性和方法。
要控制CharacterController移动,可以通过在脚本中调用Move方法使其移动。
(2)虽然CharacterController不受力,但是有个例外是,它受碰撞的影响。
一般的碰撞发生条件是:碰撞的两个物体必须都有Collider,并且其中一个有Rigidbody。
但是如果一方有CharacterController,则不需要。
这时碰撞发生的条件为:
一方有CharacterController,另一方有Collider。CharacterController本身就继承自Collider。
(3)碰撞发生时,CharacterController不会推动其它物体移动,也就是说CharacterController不会对它所碰撞的物体施加物理作用。
除非我们在脚本中添加了OnControllerColliderHit()函数,在该函数中使用被碰撞物体的rigidbody对被碰撞物体施加力。
这个是碰撞触发检测的表格:


        
碰撞触发检测
     
   
   
静态对撞机
  
刚体对撞机
  
运动刚体碰撞器
  
静态触发器碰撞器
  
刚体触发器碰撞器
  
运动刚体触发器对撞机

   
静态对撞机
  
  
  
  
  
ÿ
  
ÿ

   
刚体对撞机
  
  
  
  
ÿ
  
ÿ
  
ÿ

   
运动刚体碰撞器
  
  
  
  
ÿ
  
ÿ
  
ÿ

   
静态触发器碰撞器
  
  
ÿ
  
ÿ
  
  
ÿ
  
ÿ

   
刚体触发器碰撞器
  
ÿ
  
ÿ
  
ÿ
  
ÿ
  
ÿ
  
ÿ

   
运动刚体触发器对撞机
  
ÿ
  
ÿ
  
ÿ
  
ÿ
  
ÿ
  
ÿ

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具

成为第一个回答人

B Color Link Quote Code Smilies

关于作者

老街浊酒

注册会员

  • 主题

    30

  • 帖子

    30

  • 关注者

    0

返回顶部