zoukankan      html  css  js  c++  java
  • Unity3D-Rigidbody

    挂载Rigidbody的Gameobject受物理引擎的作用,有真实的物理力学。

    Mass质量:物体的质量(任意单位)。建议一个物体的质量不要多余或少于其他单位的100倍。

    Drag阻力:当受力移动时物体收到的空气阻力。0表示没有空气阻力,极大时物体立即停止运动。

    Angular Drag角阻力:当受扭力旋转的时候物体受到空气阻力。0表示没有空气阻力,极大时物体立即停止运动。

    Use Gravity使用重力:若激活,物体受重力影响。

    Is Kinematic是否运动学:若激活,物体不受物理引擎驱动,而只能通过变换来操作。适用于模拟的平台或者模拟模拟受铰链关节连接的刚体。

    Interpolate插值:当你发现刚体运动时抖动,可以尝试下面选项。

    1. None无:No Interpolation is applied。不引用插值。
    2. Interpolate内插值:基于上一帧的变换来平滑本帧变换。
    3. Extrapolate外插值:基于下一帧的预估变换来平滑本帧变换。

    Collision Detection碰撞检测:碰撞检测模式。用于避免高速物体穿过其他物体,却未触发碰撞。

    1. Discrete不连续:不连续碰撞检测。使用不连续碰撞检测模式来与场景中其他碰撞器进行碰撞检测。其他物体与它的碰撞检测也会应用这种模式。适用于普通碰撞(默认)。
    2. Continuous连续:连续碰撞检测。使用不连续碰撞检测来检测与动态碰撞器(刚体)的碰撞,使用连续碰撞检测来检测与静态网格(非刚体)的碰撞检测。采用连续动态碰撞检测模式的刚体碰见这类物体也将采用连续碰撞检测模式,而与其他刚体将采用不连续碰撞检测模式。这种模式适用于那些采用连续动态碰撞模式的物体碰撞的物体。(这对物理表现有很大的影响,如果你不关心与高速物体的碰撞,那就用默认的不连续模式)
    3. Continous Dynamic动态连续:连续动态碰撞检测。使用连续碰撞动态碰撞检测方式来检测与连续模式和连续动态模式的物体间的碰撞。也适用于静态网格(非刚体)的碰撞检测。而与之碰撞的其他模式的物体,采用的不连续动态碰撞检测模式。适用于高速物体。

    Constraints约束:对刚体运动的约束。

    Freeze Position冻结位置:刚体在世界中沿所选x、y、z移动无效。

    Freeze Rotation冻结旋转:刚体在世界中沿所选x、y、z旋转无效。

    只能通过transform改变。

    Collider碰撞组件:用于检测俩个都携带Collider组件的GameObject碰撞。有以下属性:

    isTrigger:碰撞器是否是触发器(可以穿越)

    material:碰撞器所使用的物理材质

    总结:

    俩个物体要碰撞必须都有Collider,其中一个必须添加Rigidbody(最好在其中移动的物体添加)

    俩个物体有一个勾选isTrigger则会穿越:

      OnTriggerEnter();

      OnTriggerExit();

      OnTriggerStay();

    否则进行碰撞:

      OnCollisionEnter();

      OnCollisionExit();

      OnCollisionStay();

    Properties变量

    angularDrag 角阻力
    angularVelocity 角速度
    centerOfMass 相对于原点变换的质心
    collisionDetectionMode 碰撞检测模式
    constraints 控制刚体模拟的自由度
    detectionCollisions 碰撞检测是否应用
    drag 阻力
    freezeRotion 控制是否改变物体旋转
    inertia Tensor 相对于重心质量的惯性张量对角线
    inertia TensorRotation 惯性张量的旋转
    interpolation 平滑插值
    isKinematic 是否运动学
    mass 质量
    maxAngularVelocity 最大角速度
    maxDepenetrationVelocity 当非穿透状态,刚体的最大速度
    position 位置
    rotation 旋转角度
    sleepThreshold 哪个对象开始进入休眠状态,质量归一的能力阈值
    solverIterationCount 允许你覆盖刚体求解的迭代次数
    useConeFriction 用于该刚体的锥形摩擦力
    useGravity 是否使用重力
    velocity 速度
    worldCenterOfMass 世界坐标中间的刚体的重心

    Public Functions 公共方法

    Add ExplosionForce 添加一个爆炸力
    AddForce 添加一个力
    AddForceAtPositon 在position位置加一个力
    AddRelativeForce 添加力到刚体相对于它的局部坐标
    Add relativeTorque 相对于它的局部坐标添加扭力
    AddTorque 添加扭矩到刚体
    ClosestPointOnBounds 指定位置到刚体附加碰撞器的最近点
    GetPointVelocity 刚体在世界坐标,worldPoint速度
    GetRelativePointVelocity 刚体在局部坐标点速度
    IsSleeping 刚体是否在休眠
    MovePosition 移动新位置
    MoveRotation 旋转到新的角度
    ResetCenterOfMass 重置质心
    ResetInertiaTensor 重置惯性张量何旋转
    SetDensity 设置基于碰撞器的密度质量
    Sleep 强置刚体休眠

    SweepTest

    如果一个刚体碰到任何东西触发测试(给刚体一个类似Physic.Raycast)
    SweepTestAll 返回所有碰撞信息
    WakeUp 强制一个刚体唤醒

    中文API入口

  • 相关阅读:
    15-数组concat()方法和push比较
    06-使用云储存上传工具
    05-云函数/云数据库的增删改查
    错题1
    c++链表
    8817
    8816
    1177
    1355
    c++期末考
  • 原文地址:https://www.cnblogs.com/dlvguo/p/9734098.html
Copyright © 2011-2022 走看看