抱歉各位,拖更了很久,主要是因为生病了,动了个手术。现在好多了,回到定期更新的节奏了。
在Unity3D引擎中,引擎为我们提供了多种便于搭建场景的功能。利用好prefab预设,将会使我们更快速的搭建游戏场景。另外,在搭建场景之前,规划好我们的游戏场景也是一个必要的步骤。那么今天,我们就以上次建好的模型为例,快速搭建一个Unity的场景。
使用合理的目录结构
首先在你的Unity目录里面要保持良好的目录结构,如使用如下的目录结构。
目录结构在上面的目录结构中,Material是模型的材质,Mesh是从3D建模软件中导入的模型,这些模型称为Mesh(网格)。因为其没有碰撞体和Untiy中的PBR材质,所以我们需要对其进行碰撞体的添加和贴上材质。添加完材质之后,我们将这些做好的物体拖动到Prefabs中,保存为预设,以便下次使用。在Scene中主要保存的是游戏中的场景文件。而Texture中则是材质的贴图,如PNG,JPG等贴图文件,这些图片是构成PBR材质的主要部分。
增加碰撞体的策略
在Unity引擎中,我们可以使用自带的Box Collider碰撞体,Sphere Collider碰撞体等来模拟简单的物体的碰撞。但遇到一些特殊的物体的时候,则需要使用碰撞体来组合,用来模拟其表面。在一些复杂的物体中,使用Mesh Collider碰撞体往往会偏离我们的预想。如下,一个楼梯的模型,如果我们使用Mesh Collider并通过Convex来生成碰撞体的时候,会造成如下的结果。
错误的碰撞体注意这个生成的碰撞体,其应该可以行走的表面被完全封死,变为不可行走。这时我们就不能只顾方便而使用Mesh Collider了。
对于楼梯的碰撞体的解决方法,我们使用Box Collider来模拟楼梯。
在这里,我仅仅使用了3个Box Collider,为了省事。其实可以每一级台阶增加一个Box Collider来完美地模拟楼梯的碰撞体的。
在添加碰撞体的时候,我使用的并不是在右面Inspector检视面板来添加,而是在楼梯这个物体里面添加Cube这个子物体,并调整到合适位置和大小之后,关掉其Mesh Renderer来实现的。这样可以方便地修改碰撞体的位置,并且可以旋转碰撞体。
使用Prefab简化你的工作
在搭建完楼梯之后,我们在阶层面板中找到Stair这个物体,在项目面板中打开Prefab文件夹,将Stair这个物体拖动到文件夹里面,这样就形成了一个Prefab预设。
保存到Prefab这个预设保存着游戏中该物体的所有信息,包括其子物体相对于父物体的各种信息,于是我们刚才搭建的碰撞体就被保存了下来。
如果需要修改Prefab预设的话,这时我们只需在场景中找到该预设,或将预设拖动到场景中,修改其内容,然后再点击阶层面板中的Apply按钮即可,这时所有场景中的该预设都会随之而改变。
在我们完成一个楼层的搭建之后,将该楼层保存成预设。
于是,很短的时间之内,我们就完成了整个楼层内部结构的场景的搭建。
内部楼层的场景增加光照
在场景中,我们在相对的位置增加点光源用来模拟灯泡。
添加光源然后我们在window里面打开Lighting这个选项。将其拖动至合适的地方。
Lighting面板我选择的是右侧面板。
然后点击Lighting下面的Object选项,选中Renderer。
这时左面的阶层面板中将场景中的所有Mesh Renderer的物体都显示出来了,我们选中所有的Mesh物体。
选中所有物体然后再回到Object选项中,勾选中Lightmap Static,这样的话,烘焙光照贴图的时候就会对所有的物体进行烘焙。然后再根据需求,更改光照贴图的分辨率吧。最后点击烘焙开始烘焙我们的场景。
网友评论