【Unity 3D-01】Unity 3D Physics-Rigidbody(刚体)详解

  现实世界中的物体都受到力的作用,所以才会有多姿多彩的生活。那么在游戏中又如何让游戏对象也受到力的作用呢,游戏中物体受到力的作用,更多地是现象的模拟,而不是真的受到力的作用。通俗一点,就是让你感觉好像真的受到了力,而实际是只不过是一堆代码的执行而已。unity3d如何让物体能受到力的作用呢?下面简单介绍一下。

  

  1. 启动unity3d游戏引擎。这里我就随便启动一个之前的项目了。

    unity3d中rigidbody(刚体)详解
  2.  

    随便建立一个物体。这里我就建立了一个立方体。

    unity3d中rigidbody(刚体)详解
  3.  

    然后再检视窗口,为选择的立方体添加一个组件,单击add componet。

    unity3d中rigidbody(刚体)详解
  4.  

    在弹出的窗口中,单击physics;弹出新的窗口,单击rigidbody(刚体)。

    unity3d中rigidbody(刚体)详解
    unity3d中rigidbody(刚体)详解
  5.  

    这时所选择的立方体就有了刚体组件。添加了这个组件的游戏对象可以接受外力和扭矩力,并且像真实的物体一样接受摩擦力和重力,还可以与其他物体发生相互碰撞。

    1. unity3d中rigidbody(刚体)详解

       

      刚体组件的具体参数。

        • Mass(质量):
          学过物理的同学们都知道的吧,质量越大,惯性越大。这里的单位可以自己统一规定,但是官方给出的建议是场景中的物体质量最好不要相差100倍率以上。估计是防止两个质量相差太大的物体碰撞后会产生过大的速度,从而影响游戏性能吧。
        • Drag(阻力):这里指的是空气阻力,当游戏物体收到某个作用力的时候,这个值越大越难移动。如果设置成无限的话,物体会立即停止移动。
        • Angular Drag(角阻力):
          同样指的是空气阻力,只不过是用来阻碍物体旋转的。如果设置成无限的话,物体会立即停止旋转。
        • Use Gravity(使用重力):
          勾选了这个项,游戏对象就会受到重力影响。
        • Is Kinematic(是否动态):
          勾选这个选项会使游戏对象不受物理引擎的影响,但这不等同于没有刚体组件。这通常用于需要用动画控制的刚体,这样就不会因为惯性而影响动画了。
        • Interplate(差值类型):如果看到刚体移动的时候一直抽风或者运动的不是很平滑,可以选择一种平滑方式:
          None(无差值):不使用差值平滑。
          Interpolate(差值):根据上一帧来平滑移动。
          Extrapolate(推算):根据推算下一帧物体的位置来平滑移动。
        • Collision Detection(碰撞检测方式):
          Discrete(离散):默认的碰撞检测方式。但若当物体A运动很快的时候,有可能前一帧还在B物体的前面,后一帧就在B物体后面了,这种情况下不会触发碰撞事件,所以如果需要检测这种情况,那就必须使用后两种检测方式。
          Continuous(连续):这种方式可以与有静态网格碰撞器的游戏对象进行碰撞检测。
          Continuous Dynamic(动态连续):这种方式可以与所有设置了2或3方式的游戏对象进行碰撞检测。
        • Freeze Position/Rotation(冻结位置/旋转):
          可以对物体在X、Y、Z三个轴上的位置/旋转进行锁定,即使受到相应的力也不会改变,但可以通过脚本来修改。

 

转载于:https://www.cnblogs.com/Carlos-Chen/p/6008624.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值