Unity3D----导入模型的碰撞检测

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

一直往下落。


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


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


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

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


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

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


  

 

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

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

  如下图所示:

  

  


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

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



  


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

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

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




  

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

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


  


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

  


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

率上比较高)。

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

  

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

面的炮头左边是空的。

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

试。


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值