1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Unity——物理引擎

Unity——物理引擎

时间:2022-02-20 03:57:52

相关推荐

Unity——物理引擎

刚体(Rigidbody)

Mass:质量,用于计算速度,加速度

Drag:摩擦力,模拟运动中受到的阻力

Angular Drag:旋转摩擦力,如果旋转的话,力越大,停下来的越快

Use Gravity:是否考虑重力

Is Kinematic:运动学刚体,暂时受transform控制,而不受物理引擎控制

Collision Detection:碰撞检测频率,刚体和刚体碰撞需要检测,如果运动快的刚体,没有来得及检测就会造成穿透效果。

Constrains:固定某一个轴不变

刚体常常结合各种Collider碰撞器的使用

力(Constant Force)

我们可以给刚体施加力,来表达运动效果。组件Constant Force可以模拟。

Force:同样存在三个方向,是世界坐标系。

Relative Force:相对力,和Force一样,不过力的设置是根据本地坐标系

Toqure:转矩力,比如在Y轴设置力,就是以Y轴旋转,旋转的速度通过Unity组件计算可以获得,比如我们想模拟轮胎旋转的效果。

Relative Torque:和Torque一样,只不过以本地坐标系设置。

我们可以使用addForce()等函数在脚本中设置力,通常是在固定时间渲染更新的FixedUpdate()下更新。

碰撞器(Collider)

当我们对物体加刚体时,碰撞器的碰撞依赖于物理引擎,而不加刚体只加碰撞器的时候,会独立于物理引擎的计算。我们可以通过碰撞器检测到碰撞并且获得碰撞的对象。

刚体碰撞器有三种:Box Collider,Sphere Collider,Capsule Collider,一般Player使用Capsule Collider。当在球体添加Box Collider会自动转化成Sphere Collider。

静态碰撞器,如Mesh Collider,比如我们创建一个Plane就会附带Mesh Collider。

OnCollisionEnter(Collision collision)检测碰撞消息,collision为同样添加碰撞器的对象,并不一定是刚体,并且我们可以直接对collision操作。

我们对于Collider可以设置Is Trigger。对应可以发生碰撞的关系如下。

OnTriggerEnter(Collider other)同样检测是否发生碰撞,对应关系如下。

但是设置为Trigger的时候会穿过去,而不是像两个物体碰撞在一起。应用场景,玩家吃金币,当检测到碰到金币的时候,直接传过去,并同时销毁other。

关节(Joint)

Hingle Joint

我们通过使用铰链来让两个刚体进行连接

Connected Body:放入想要连接的刚体,如果没有,则和世界坐标系相连

Anchor:我们把弹簧铰链看成一个轴,那么Anchor就是轴的原点

Axis:Axis就是轴的方向

Use Spring:是否使用弹簧

Spring-Spring:弹簧的弹性

Spring-Damper:阻尼系数

Target Position:弹簧最终要达到的效果

Fixed Joint

使两个刚体像父子对象一样连接,一起运动。

Break Force:当受到一定力的时候,断开关节

Break Torque:当受到一定扭矩力的时候,断开关节

Spring Joint:和Hingle中的Spring类似

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。