uinty之碰撞体,触碰体,刚体

版权声明:该文章由一只肥鸦的博客(https://blog.csdn.net/qq_40674821)编辑,转载请声明 https://blog.csdn.net/qq_40674821/article/details/81838233

Rigidbody刚体是赋予物体力的的作用效果的基础,包括重力,拉力(阻力也是拉力的一种),角拉力(角阻力同样)。

体现出来的就是物体悬空时会掉落,被其他东西碰到时(假设有碰撞体)会朝着受力方向运动或产生运动趋势。

勾选Is Kinematic使物体不受运动学影响(即简单理解为受力后不动/不改变运动趋势)。

勾选constraints禁止该物体的(position/rotation)在所勾选方向上产生运动.

 

Collider碰撞体则是物体之间的一切触碰,碰撞基础。任意两个物体之间的接触碰撞实际上都是碰撞体的接触,有任何一方没有碰撞体则碰撞不会发生(产生穿透效果),碰撞发生的效果是由碰撞体的形状大小决定的。比如一个正方体形状的物体,给它一个球形的碰撞体,那么它在收到其他物体的力时候,将会发生的是球形物体收到力时的运动。

  点击Edit Collitder前的按钮后可改变碰撞体的大小与位置。

  在这里可以选择碰撞体的物理材质。

顺便介绍一下物理材质:

Physic Material

物理材质。(如果没有设置物理材质,则认定该物体的摩擦力为无穷大,弹力为零)

创建一个物理材质,设置

Dynamic Friction(动态摩擦力,即物体开始运动之后的摩擦力)

Static Friction(静态摩擦力,物体静止时受到超过该值的力才会开始运动)

Bounciness 弹力(1为弹到原来高度)

Friction Combine 组合摩擦力(两个接触面的摩擦力是取何值(平均值?最小值?))

Bounciness 组合弹力(同上)

碰撞时会产生碰撞事件:

OnCollisionEnter OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider. 
当该collider/rigidbody开始碰到另一个rigidbody/collider时OnCollisionEnter被调用。
OnCollisionExit OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider. 
当 collider/rigidbody停止碰撞另一个 rigidbody/collider时,OnCollisionExit被调用。
OnCollisionStay OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider. 
每当该collider/rigidbody碰到其他rigidbody/collider,将在每帧调用OnCollisionStay。

其中勾选Is Trigger则表明设置该碰撞体为触发体Trigger,这时候该物体不会与其他物体发生碰撞,即其他物体会穿过它,而产生触发事件。(一个触发器和一个普通碰撞器碰撞,其中之一必须附加刚体)

当一个刚体进入或退出触发器,将发送OnTriggerEnter, OnTriggerExit 和 OnTriggerStay消息。

OnTriggerEnter OnTriggerEnter is called when the Collider other enters the trigger. 
当碰撞器进入触发器时OnTriggerEnter被调用。
OnTriggerExit OnTriggerExit is called when the Collider other has stopped touching the trigger. 
当该碰撞器停止接触触发器时,OnTriggerExit被调用。也就是说,当碰撞器离开触发器时,调用OnTriggerExit。
OnTriggerStay OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger. 
每当碰撞器从进入触发器,几乎每帧调用OnTriggerStay

 

刚体赋予物体受力的效果,碰撞体则让物体之间能够产生接触碰撞,产生相互作用。触发体可以用来做自动门的感应区域,水域等效果。

 

基本上来说碰撞体和刚体的区别讲清楚了。

这里参见一下官方的介绍做个总结,如下:

如果一个对象带有碰撞体,需要在游戏中移动,那么你应该添加个Rigidbody组件给它。如果你不想该对象与其他对象有交互,刚体可以设置为运动学刚体(kinematic)。

 

 

猜你喜欢

转载自blog.csdn.net/qq_40674821/article/details/81838233
今日推荐