[Unity3D]Unity3D游戏开发之当FBX遇上碰撞器——再话碰撞器与刚体
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天博主想和大家说说碰撞器与刚体,为什么要讨论这个呢?我们先来看这样一个需求:我们希望我们的角色在游戏场景中运动时,四面的墙壁对角色一个“撞墙”的感觉,同时不能影响角色的位置,当碰到场景中的某些障碍物(如荆棘等)时,角色能够掉血。基于这样的需求,我们想给角色、墙壁和障碍物加上碰撞器,通过编码的方式来获得碰撞信息以确定碰撞对角色的影响。我们打开之前创建好的项目,如图所示:
我们知道,在Unity3D中存在这几种碰撞器:盒子碰撞器、球体碰撞器、胶囊体碰撞器、网格碰撞器、地形碰撞器、滚轮碰撞器。除了滚轮碰撞器专门为汽车设计以外,其余的碰撞器在平时的游戏设计中我们都能碰到。墙体可以看做是盒子,所以可以使用盒子碰撞器。这里我们用五个大箱子作为我们的障碍物,同样地我们使用盒子碰撞器。那么对于我们的角色呢?我们知道我们的角色模型并不是均匀规则的几何体,如果使用上述的碰撞器,会出现碰撞不精确的情况。怎么办呢?这里我们选择网格碰撞器。我们直接给它创建一个网格碰撞器:
运行程序,可是我们发现我们的角色并没有和场景中的墙体发生碰撞,会从墙体和障碍物中穿过去。这是怎么回事呢?我们发现Mesh Collider有一个Mesh属性,所以这里应该为这个Mesh属性添加一个网格。可是项目中并没有这样一个网格