unity3d学习笔记之碰撞检测

很多人在初学Unity3D的时候,可能会碰到这样一个问题:导入Unity3D的模型,给模型添加RigidBody后,模型会

一直往下落。


那么,我们如何解决这个问题呢?


如果你尝试过创建一个Cube之类的,添加RigidBody。运行程序后,你会很明显的发现这个Cube可以掉落到地面。


因而,想要我们的模型也这样,可以将一个Cube与模型进行绑定,然后调整Cube的碰撞体积,并去掉Cube的渲

染。这样我们就可以让模型享有Cube的碰撞检测,而又不会看到Cube。


1.导入资源:Assets--Import Package--Terrain Assets,导入系统的地形贴图等资源。

2.添加模型:在Assets下建立一个Model文件夹,将自己的3D模型放入Model中。


unity3d学习笔记之碰撞检测_第1张图片

3.建立地形:Terrain--Create Terrain。建立一个地形,在地形编辑部分点击Paint the

terrain texture图标,选择一个Texture,并调整Tile Size X, Tile Size Y。

如下图所示:

unity3d学习笔记之碰撞检测_第2张图片


4.将模型拖到Unity3D场景编辑中,并调整位置。随便添加个方向光,看起来会比较顺眼。这个时候,如果你给模型

添加RigidBody,虽然它会有重力,但不会与Terrain进行碰撞。


unity3d学习笔记之碰撞检测_第3张图片


5.创建碰撞体:GameObject--Create Other--Cube。将Cube放到模型的中心位置(其他位置也可以),你可以看到Cube

有个Box Collider对象。调整Box Collider的Center和Size,也就是碰撞范围(绿色的矩形),让碰撞范围符合整个模

型。建议分别通过X,Y,Z轴朝向进行调整。如图所示。


unity3d学习笔记之碰撞检测_第4张图片

unity3d学习笔记之碰撞检测_第5张图片

unity3d学习笔记之碰撞检测_第6张图片

6.在Hierarchy视图上,将模型(我这里是Tank)拖到Cube上。然后点Cube,Component--Physics--RigidBody给Cube

添加一个刚体。然后在Cube的属性中,将Mesh Renderer勾去掉,也就是不进行渲染Cube。


unity3d学习笔记之碰撞检测_第7张图片


7.运行程序,你会发现模型安稳的落在了Terrain上了。

unity3d学习笔记之碰撞检测_第8张图片


虽然这个例子很简单,但是大家也都基本了解了模型的碰撞思路(利用Cube,Sphere等GameObject来进行碰撞,效

率上比较高)。

学习到这里,稍微思考一下的童鞋应该会想到,如果是一个形状怪异的模型怎么办?

当然,你也可以将它作为Cube或Sphere等形状进行碰撞,但可能精确程度会很差。就例如上面例子里的坦克,最上

面的炮头左边是空的。

这样我们可以创建多个Cube进行组合,来增加碰撞的精确度。大家可以自己下去试

试。


转载请注明出处:http://blog.csdn.net/ml3947


PS:读大学的时候,写过一段时间博客,也与很多java学习者交流。但工总以后,很久没有写博客了,只是突然发

现,每一个IT牛人,基本都会坚持写博客,与大家分享交流。工作一年了,我并不算是牛人,但也希望某一天成为一

个牛人。以后会坚持写博客,大家都加油!

你可能感兴趣的:(java,工作,hierarchy)