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) {
// 退出触发器
}
要想触发碰撞效果,碰撞双方必须挂载碰撞器/触发器,且至少一方挂载刚体。
本文来自博客园,作者:坞中客,转载请注明原文链接:https://www.cnblogs.com/wuzhongke/p/16836343.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?