unity3d 给模型添加刚体后下坠

来源:互联网 发布:软件开发标书 编辑:程序博客网 时间:2024/06/10 05:37

遇到了这个问题卡了好久,网上说的试了都不行。

要解决此问题:

给模型添加一个刚体后,还要给模型添加一个碰撞器。
网上都说添加了碰撞器后,就好了,坑啊!!!
添加了碰撞器的时候,还是有很多注意点的:
比如默认添加一个碰撞器后,碰撞器是这样的,如下图:

这里写图片描述

注意
Center全是0,0,0
size为1,1,1
Center表示碰撞器以0,0,0位原点画了一个size位1,1,1的立方体作为碰撞器区域,其实这个时候碰撞器区域一半在地面上面,一半在地面下面。
这样肯定是有问题的,所以运行后,模型就下坠了。

要解决此问题,就不能让碰撞器和地面交叉,怎么办呢?
把Center改为0,0.5,0,然后会发现碰撞区域都在地面上了,然后也就不会下坠了。

有的人也说打开刚体的is Kinematic开关就行了,打开确实是行了,但是这个时候碰撞效果,只能是自己操作坐标实现了。
官方对它的解释:

Is Kinematic 是否是运动学
If enabled, the object will not be driven by the physics engine, and can only be manipulated by its Transform. This is useful for moving platforms or if you want to animate a Rigidbody that has a HingeJoint attached.
若激活,该物体不再受物理引擎驱动,而只能通过变换来操作。适用于模拟运动的平台或者模拟受铰链关节连接的刚体。

这个不是我们想要的效果。。。

另外碰撞器上的IsTrigger属性需要注意:
1、当IsTrigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;
2、当IsTrigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。