首先说一下Unity3D的单位问题。模型导入到Unity3D中,如果你之前没有在3D中关心过单位问题,则它在场景里的大小一定会出乎你的意料。
Unity3D中的1单位是fbx文件中的1单位的100倍,所以,如果我们想在Unity3D中使用1单位=1米的话,那么mas和Unity3D中制作的时候,单位就要设置成1厘米。也就是说在导出Unity3D场景的时候我们需要选择厘米单位。
再说导入模型,今天做了一个测试,把一个不到200万面的模型导入到Unity3D中成功,但是在给模型添加Generate Colliders的时候出现问题,可以添加上,但是添加上之后就找不到原来的模型了,试了好多次也没有成功,最后分析原因是,模型面太多了。解决办法是把原来的模型分解生两个在添加到工程中去就可以解决。现在也是有一个疑问Unity3D单个物体多少面可以添加Generate Colliders?
再说一个导入模型的碰撞检测,导入一个模型,不能与地面发生碰撞,解决办法是可以添加一个父物体Cube,它是有碰撞的可以吧导入模型拖拽到Cube。
Unity3D教程:导入模型碰撞检测
下充当它的子物体,
Unity3D教程:导入模型碰撞检测
在去掉Cube的Mesh Renderer,也就是不进行渲染Cube。当然,你也可以将它作为Cube或Sphere等形状进行碰撞,但可能精确程度会很差。就例如上面例子里的坦克,最上面的炮头左边是空的。这样我们可以创建多个Cube进行组合,来增加碰撞的精确度。