阅读 81

unity球形缸体,unity人形缸体

分类: Unity、C#、VS2015

创建日期: 2016-05-02

另一方面,介绍Rigidbody (刚体)组件,游戏对象可以在物理系统的控制下运行,刚体可以受到外力和扭矩的力,使游戏对象像现实世界一样运动。

添加了刚体组件的游戏对象可以受到重力的影响。

通过脚本作用于游戏对象的力以及通过NVIDlA物理引擎与其他游戏对象交互的运算需要向游戏对象中添加刚体组件。

二、向对象添加刚体方法向Unity 5.x游戏对象添加刚体的方法是选择添加刚体的游戏对象--【Component】--【Physics】--【Rigidbody】

添加刚体和碰撞体后,如果选择对象,请注意周围被绿色边框包围。

添加刚体和碰撞体主要用于检测对象与其他对象之间的碰撞。 碰撞体可以通过胶囊体来实现,也可以通过其他碰撞体组件来实现。

三、相关属性刚体相关属性如下:

1、质量

对象的质量(任何单位)。 请勿使质量大于或小于其他刚体的质量100倍。

2、阻力) )

因施加力而移动时的空气阻力对对象的影响程度。 0表示没有空气阻力,当空气阻力变为无穷大时,对象会立即停止移动。

3、角阻力)。

对某个对象施加扭矩并旋转该对象时,空气阻力对该对象的影响程度。 0表示没有空气阻力。 注意:仅使用无限设置“角阻力”(Angular Drag )的鹤对象无法阻止旋转。

4、Use Gravity (是否使用重力) ) )。

启用时,对象会受到重力的影响。

5、Is Kinematic (是否打开运动学) )。

如果启用该选项,则对象仅通过应用“变换”(Transform )进行处理,而不是由物理引擎驱动。 在为移动平台(如移动电话)或具有铰链关节(HingeJoint )的刚体(Rigidbody )设置动画时,启用对象的运动学非常有用。

6、内插处理)

此项用于控制刚体运动的摆动。 仅当发现刚体的运动不稳定时,才尝试以下选项之一:

None :不应用插值。

内插:内插。 基于“变换”(Transform ) (上一帧的变换)执行平滑。

扩展:外推。 变换部根据下一帧的推定变换部进行平滑处理。

7、碰撞检测) )。

该属性用于防止高速运行的游戏对象通过其他对象而不发生碰撞。 您可以选择:

((1) Discrete (离散) ) ) ) ) ) ) )。

对场景中的所有其他“碰撞体”使用“离散”碰撞检测。 这个项目是默认值。

((2)连续) )。

当对刚体进行碰撞测试时,离散碰撞测试用于刚体的动态碰撞; 对没有刚体的静态网格碰撞体使用“连续”碰撞检测。

(3)连续动态(Continuous Dynamic ) ) ) ) ) ) ) ) )。

此选项可用于快速移动的对象。

对于设定为“连续”(Continuous )和“连续动力学”(Continuous Dynamic )碰撞的对象,请使用“连续”(Continuous )碰撞检测。 对无刚体的静态网格碰撞体也使用“连续”碰撞检测。 对于所有其他“碰撞体”,请使用“离散”碰撞检测。

注意:在“连续动力学”(Continuous Dynamic )检测中,快速对象的碰撞正常时是离散的,而不是连续的动力学,因为需要碰撞的对象对物理性能的影响非常大

8、约束) )。

刚体运动的限制。

(1) Freeze Position (冻结位置) ) ) ) ) ) ) )。

在世界坐标的x、y和z轴上选择性地停止刚体的移动。 这意味着刚体对象在x、y和4方向(启用)上在世界坐标系中的移动将无效。

(2)冻结旋转(Freeze Rotation ) ) ) ) ) ) ) ) ) ) ) )。

选择性地停止刚体围绕世界坐标的x、y和z轴的旋转。 也就是说,世界坐标系中刚体对象的x、y和4方向(启用)的旋转将禁用。

三、注意事项1、Rigidbody和Transform只能二选一

刚体将游戏对象传递到物理引擎

的控制下运动,例如可以以真实的碰撞形式来开门或计算其他的行为。通过在刚体上添加作用力来操作游戏对象,这与直接调整Transform组件相比在视觉及感受上都有很大的不同。通常情况下,没有必要在操作—个对象刚体的同时也操作其Transform,只需要二选其一即可。


操作游戏对象的Rigidbody与操作该对象的Transform最大的不同就是刚体有作用力,而且刚体可以接受外力和扭矩,但是Transform无法达到该效果。Transform可以移动和旋转游戏对象,这与使用物理的方式并不相同。

对—个刚体添加外力或扭矩实际上也会改变该对象Transform组件的移动和旋转,这也就是这两者只需要选其一的原因。使用物理方式操作对象的同时又改变它的Transform会导致碰撞及其他相关的计算出现问题。

刚体在受物理引擎作用之前必须要明确地将其添加给一个游戏对象,之后该对象就会受到重力和通过脚本添加的作用力的影响,但根据实际情况可能还需要为其添加碰撞体或关节等以便达到预期的行为效果。

2、父子化 (Parenting)

当对象处于物理控制之下时,其移动方式与其变换父级的移动方式半独立。如果移动任何父级,则会随它们一起拉动刚体 (Rigidbody) 的子级。但是,刚体 (Rigidbody) 仍会由于重力的作用而下落并对碰撞事件作出反应。

3、脚本处理

要控制刚体 (Rigidbody),主要使用脚本添加力或扭矩。可通过对对象的刚体 (Rigidbody) 调用 AddForce() 和 AddTorque() 来实现此目的。

记住:不应在使用物理时直接改变对象的变换 (Transform)。

4、动画

有些情况下,如需要创建布娃娃效果的时候,需要在动画和物理系统间切换对象的控制权。因此当刚体被标记为动力学(isKinematic)模式时,就不会受到如碰撞、作用力或其他物理效果的影响,这就意味着需要直接操作该对象的Transform组件属性来控制该对象了。动力学刚体(Kinematic Rigidbody)会影响其他的对象,但其自身并不受到物理系统的影响。例如,那些绑定到动力学(Kinematic)对象上的关节(Joint)会约束其他绑定到该对象上的刚体(Rigidbody),动力学刚体(Kinematic Rigidbody)在碰撞时会影晌其他的刚体。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐