untiy3d 刚体学习
首页 > 游戏开发技术 > Unity3D    作者:闭眼就天黑   2020年1月18日 11:02 星期六   热度:1016°   百度已收录  
时间:2020-1-18 11:02   热度:1016° 

刚体 Rigidbody

 

 

Mass(刚体质量):默认1

Drag(阻力):物体移动时候的阻力

Angular Drag(旋转阻力):旋转时候的衰减

Use Gravity(是否使用重力): 是否受到重力影响

Is Kinematic(是否受牛顿运动学影响)false正常的物理计算 true运动只会在代码和动画受到影响,普通的碰撞等不会改变他的运动状态

Interpolate(物理运动插值模式):Node最近计算值  interpolate内插值 extrapolate外插值

Discrete(离散模式,cpu资源占用少,静态低速物体使用此模式)

Continuous连续检测,高速体积小的物体使用此模式

Continus Dynamic模式:被使用了Continusous检测撞击的模式

 

刚体的变量

1: 角速度(angularVelocity);

2: 线性速度(velocity);

3: 重心(center of mass)

4: 碰撞检测开关(detectCollisions): 默认为true, 关闭检测碰撞 false;

5: intertiaTensor惯性张量 intertiaTensorRotation 惯性张量旋转;

6: 最大角速度(maxAngularVelocity);

7: 最大穿透速度(maxDepenetrationVelocity)

8: position:刚体的世界坐标,与图像的transform.position尽量保持一致;

9: rotation: 刚体在世界坐标的旋转;

10: useConeFiction是否使用锥形摩擦,一般false; true一般不使用;

刚体常用方法

1: AddForce 给刚体一个力,方向是世界坐标

    ForceMode 类型: t(即0.02s

     ft=mv (force)   ft=1.0v (Acceleration)  

     f1.0=mv(Impulse)  f1.0=1.0v(VelocityChange)

2:AddForceAtPosition postion是世界体系坐标,确保坐标在物体内;

3: AddRelativeForce力方向 相对于物体坐标

4: MovePosition/MoveRotation 调整刚体到指定的位置/旋转

5: AddTorque/AddRelativeToque: 施加一个力矩(相对力矩);

6: 设置密度SetDensticy,体积是碰撞器体积;

7: Sleep: 强制刚体休眠; Wakeup 唤醒刚体;

8: SweepTest/SweepTestAll 扫描检测,返回射线碰撞到的刚体;

物理管理器

1:Gravity 重力,设置重力的大小和方向;

2: Default Material:为每个物体给一个默认的物理材质;

3: Bounce Threshold 反弹阈值,低于这个不进行反弹计算;

4: SleepThreshold 休眠阈值能量低于这个阈值休眠 E = (sqrt(v) + sqrt(A)) * 0.5

5: Default Contact offset默认接触偏差,低于该值认为刚体已经接触必须>0;

6: Solver Iteration Count关节和连接迭代次数;

7: Raycasts Hit Triggers 射线是否命中触发器, true检测命中, false忽略触发器;

8:Enable Adaptive Force 允许自适应力 修正模拟运动状态的数值偏差;

8: 碰撞矩阵,配置层级间的碰撞关系;

 

物理形状/碰撞器

1:Box Collider 盒子碰撞器;

2: Sphere Collider 球体碰撞器

3: Capsule Collider 胶囊碰撞器;

4: Mesh Collider  网格碰撞器;

5: Terrian Collider 地形碰撞器;

6: Wheel Collider车轮碰撞器;

 

物理材质

1:每种物体的弹力,摩擦力等物理参数可能不一样,unity使用物理材质来描述它们;

2:Dynamic Friction 滑动摩擦

3: Static Firction 静态摩擦

4: Bounciness 表面弹性;

5: Friction Combine 摩擦力的混合方式

6: Bounciness Combine 弹力的混合方式;

 

 

碰撞检测

1: OnCollisionEnter: 开始碰撞

2: OnCollisionExit: 碰撞离开

3: OnCollisionStay 碰撞持续

4: OnTriggerEnter: 开始碰撞到触发器

5: OnTriggerExit: 与触发器结束碰撞;

6: OnTriggerStay; 与触发器碰撞持续;

7: 配置物理管理器的 碰撞关系;

 

 

Physics属性

1: Physics.gravity: 物理世界重力加速度;

2: bounceThreshold: 是否反弹的阈值

3: sleepThreshold: 低于这个能量,物体休眠

4: queriesHitTriggers: 射线碰撞检测是否检测trigger;

5: solverIterationCount / solverVelocityIterationCount;

6: defaultContactOffset 默认接触的偏差;

5: IgnoreCollision(Collider collider1, Collider collider2, bool ignore)

      配置忽略碰撞器碰撞;

6: IgnoreLayerCollision(int layer1, int layer2, bool ignore)

     配置两个层的物体是否碰撞;

二维码加载中...
本文作者:闭眼就天黑      文章标题: untiy3d 刚体学习
本文地址:https://www.byjth.com/unity3d/140.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
相关文章

版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《untiy3d 刚体学习
本文地址:https://www.byjth.com/unity3d/140.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。

返回顶部    首页    手机版本    版权所有:闭眼就天黑专栏_技术博客_个人学习总结
    站长: 闭眼就天黑    搜索cocos2dx主题 技术支持:闭眼就天黑   皖ICP备14007736号-1  

皖公网安备 34132102000107号

   sitemap