• 物理系统(2/3)
    • Rigidbody(刚体组件)
    • 面板属性:
    • Rigidbody API
      • 参见 Unity 常用 API

    物理系统(2/3)

    Rigidbody(刚体组件)

    概念:

      通过物理模拟控制一个物体的位置。

      添加Rigidbody组件到一个对象,这就置于了Unity的物理引擎下使其运动。即使没有添加任何代码,刚体对象也将在重力的影响下下落,如果带有碰撞器的对象与之碰撞,并将做出反应。

      从脚本添加力到刚体对象上,以真实的物理方法来控制它。例如,轿车的行为可以给轮胎施加力,物理引擎处理运动的其他方面,因此,会有更真实的加速度和正确的碰撞反应。

      在脚本,FixedUpdate函数中被推荐放置应用力以及修改刚体设置(相对于Update,应用其他大部分更新任务)。物理更新的时间间隔与update是不一致的,在每个物理更新之前,FixedUpdate被立即调用,所以所作的任何更改会直接处理。

      当刚体运行开始常见的问题是,游戏物理引擎看上去运行像“慢镜头”。这实际上由于你模型的大小,默认重力设置假定为每世界单位1米距离。对非物理游戏,你的模型缩放100单位也没有多大差别,但当使用物理引擎,它们将被视为非常大的对象。如果应该是小对象使用较大的缩放,它们将出现下落很慢,物理引擎认为它是非常大的对象,下落较大的距离。考虑到这一点,请确保你的对象接近真实生活的大小(例如,轿车应该是大约4单位=4米)。

    对于Unity引擎来说,所有力学的处理都应该放在FixedUpdate进行。注意:不要更改Time属性中的固定时间,如果更改了可能会造成物理引擎不同步问题

    面板属性:

    1. Mass
    2. 物体质量(单位“千克”)
    3. 注意:质量不能为0,而且质量尽量大于10,保持在[0.1 -- 10]范围内;
    4. Drag
    5. 平移方向的阻力
    6. 他不代表物体和物体的接触阻力,他只表达空气对物体的阻力
    7. Angluar Drag
    8. 选择的空气角阻力
    9. User Gravity
    10. 是否使用重力
    11. 这个选项表示你是否使用世界正方向上的下压力
    12. Is Kinematic
    13. 是否遵循牛顿物理学定律
    14. 注意:如果为true,他会让刚体失去,力学、碰撞、万有引力;
    15. Interpolate
    16. 物理运动差值
    17. 提供在物理运动上时候的逐帧渲染效果,如果使用该选择但是你的帧渲染不够快会导致物体的轻微抖动现象,所以我们建议这个属性尽量应用在主角身上而不是NPC身上
    18. Collision Detection
    19. 碰撞检测模式
    20. Discrete
    21. 非连续性碰撞,效率高但是精度很低,适用于慢动作物体
    22. Continuous
    23. 连续碰撞检测
    24. 效率适中,精度有所提高,适用于汽车这样高速但是体积庞大的物体运动
    25. ContinuousDynamic
    26. 连续动态碰撞
    27. 精度最高,但是效率最差,适用于体积较小碰撞紧密的运动物体,例如:炮弹
    28. Constraints
    29. 冻结平移运动和选择运动
    30. 他可以讲物体的三个轴上的平移力忽略掉,也可以忽略三个轴上的旋转力。他和User Gravity 不一样,他是让这些轴永远不发生任何力的效果

    Rigidbody API

    参见 Unity 常用 API

    ● 2.13 RigidBody

    ?