unity3d中如何检测车轮是不是接触地面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d中如何检测车轮是不是接触地面?相关的知识,希望对你有一定的参考价值。

该用什么函数?
函数应该是WheelCollider.isGrounded。但用什么方法能够准确的判断出赛车物体在垂直倒着开时,是否接触地面,是否因为速度不够而离地下落

参考技术A 这个用射线吧,,,好像叫raycast 参考技术B 如果在平地、 就判断高度。 如果是地形、 和地形碰撞算不算?

unity3D中,给物体添加刚体后,为啥不是掉在地面上,而是穿过地形一直往下落呢?

为fbx物体添加capsule collider组件之后再添加刚体组件,物体就不会穿过地面下沉了。在立方体上面添加一个Rigidbody刚体组件,并在上面添加一个Tertest脚本。给脚本添加OnCollisionEnter方法,可以检测碰撞collider,详细步骤:

1、打开unity3d创建一个地面Terrain。

2、接着创建一个立方体模型Cube。

3、在立方体上面添加一个Rigidbody刚体组件。

4、并在上面添加一个Tertest脚本。

5、给脚本添加OnCollisionEnter方法,可以检测碰撞collider。

6、在方法判断是否与地面Terrain接触并发生碰撞了,是的话就修改为红颜色。

if(theCollision.gameObject.name=="Terrain")

GetComponent<Renderer>().material.color = new Color (255,0,0);

7、运行unity3d场景,发现立方体会下落,当掉落到地面后就变成了红颜色。

参考技术A 碰撞体厚度小于unity里的物理设置 default contact offset就会往下掉。
Edit-project settings-physics里设置contact offset,默认是0.1调小。
比如物体碰撞体z是0.2,scale的z是0.2,0.2*0.2<0.1,就会往下掉
参考技术B 添加刚体后,你还必须给该物体添加一个碰撞。
并且该碰撞不能是meshCollider。
如果非要是MeshCollider,那你还必须给Convex打上勾
参考技术C 你这个是导入的fbx文件吧 ,为fbx物体添加capsule collider组件之后再添加刚体组件,物体就不会穿过地面下沉了 参考技术D

我也是这个问题,我最后是修改了碰撞检测collision detection模式,你看一下你的

以上是关于unity3d中如何检测车轮是不是接触地面?的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 中的模型加了重力之后就会穿过地面往下掉,我模型和地面都加了碰撞啊,没有选择trigger

Unity3D教程:简单的碰撞检测

unity3d中. 地面上有一个文字, 文字上有一个cube, 现在我想在上方往下看,能透过cube看的到文字,

unity3d如何使刚体不被穿越?

如何在Phaser中启用“就在”玩家接触地面之前跳跃?

Sprite Kit 接触检测