Rigibody 刚体

Rigibody 刚体

刚体的属性

  • Mass质量,建议不要让对象之间的质量差达到100倍以上
  • Drag空气阻力,为零表示没有阻力infinity表示立即停止移动
  • Angular Drag扭力阻力,
  • Use Gravity是否受重力影响
  • Is Kinematic是否为Kinematic刚体,如果启用该参数,则对象不会被物理控制只能通过直接设置位置,旋转和缩放来操作它,一般用来实现移动平台,或者带有HingeJoint的动画刚体
  • InierPolate如果当体运动时有抖动,尝试一下修改这个参数,None表示没有差值。
  • Interpolate表示根据上一帧的位置来做平滑插值,Extrapolate表示根据预测的下一帧的位置来做平滑插值。
  • Collision Detection碰撞检测算法,用于防止刚体因快速移动而穿过其他对象。
  • Constraints刚体运动的约束,包括位置约束和旋转约束,勾选表示在该坐标上不允许进行此类操作。
  • Freeze Rotation如果选中该选项,那么刚体将不会因为外力或者扭力而发生旋转,只能通过脚本的旋转函数进行操作。

刚体的用法

  • Position该刚体的位置
  • Rotation刚体的旋转角度
  • Velocity刚体的速度向量
  • AddExplosionForce应用一个力到刚体来模拟爆炸效果。
  • AddForce添加到刚体的力。

刚体的移动

  • var rig = GetComponent<Rigidbody>();获得游戏物体自身的刚体组件
  • rig.velocity = Vector3.forward;游戏物体通过自身刚体组件进行移动
  • rig.angularVelocity = Vector3.up;游戏物体通过自身刚体组件进行旋转
    通过刚体改变游戏物体的状态时,是会受到刚体上的阻力摩擦力等影响,这个和transform.Translate有所不同
private void OnCollisionEnter(Collision collision) {
    // 进入碰撞
}
private void OnCollisionStay(Collision collision) {
    // 碰撞驻留,与物理帧有关    
}
private void OnCollisionExit(Collision collision) {
   // 碰撞离开     
}
private void OnTriggerEnter(Collider other) {
   // 进入触发器 
}
private void OnTriggerStay(Collider other) {
   // 驻留触发器     
}
private void OnTriggerExit(Collider other) {
   // 退出触发器     
}

要想触发碰撞效果,碰撞双方必须挂载碰撞器/触发器,且至少一方挂载刚体。

posted @   坞中客  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示