使用unity3D制作场景的时候,我们需要在里面导入各种模型,其中有些比较复杂的模型我们需要给其添加碰撞效果,这时候我们可以使用对应的网格碰撞组件,然后自己设置相对更精确的网格作为碰撞检测的范围就可以了,下面就给大家带来实际 *** 作,希望能帮助到有需要的人。
工具/软件
电脑型号:联想(Lenovo)天逸510S; 系统版本:Windows7; 软件版本:Unity3D
方法/步骤
第1步
打开unity3d场景在里面导入一个相对更复杂的模型。
第2步
首先我们给这个模型添加Rigdibody刚体组件。
第3步
接着在Compont给其添加Mesh Collider组件。
第4步
勾选里面的 Convex,会默认根据自己的模型生成一个碰撞范围,但是不是很精确。
第5步
如果要更精确的碰撞,我们可以根据模型对应的部分,创建多个碰撞网格模型。
第6步
然后我们展开模型,把里面的网格ear1拖放到Mesh中,然后勾选Convex就可以在对应的位置建立碰撞范围,比如这里的右边的耳朵。
第7步
接着我们可以再次添加一个Mesh Collider把模型的另一个耳朵ear也添加上碰撞范围ear2。
第8步
同样的方式我们可以把模型需要添加碰撞的地方都添加上去,然后运行就可以得到更真实的物理效果了。
特别提示
作为碰撞使用的每个模型网格点面不能超过256个,否则转换的时候会报错
gameObject.AddComponent ("Rigidbody")这样就是动态加刚体.不过按你说的,只是往下落,只要改重力开关就可以了吧
myrigidbody.useGravity = true
提前加好刚体,关闭重力
为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场景,发现立方体会下落,当掉落到地面后就变成了红颜色。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)