unity3d中如何检测车轮是不是接触地面?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d中如何检测车轮是不是接触地面?相关的知识,希望对你有一定的参考价值。
该用什么函数?
函数应该是WheelCollider.isGrounded。但用什么方法能够准确的判断出赛车物体在垂直倒着开时,是否接触地面,是否因为速度不够而离地下落
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