虚拟现实开发Unity3D学习笔记unity3D技术分享

VR游戏开发403 场景的搭建和一些技巧

2016-06-04  本文已影响1101人  养薛定谔的猫
抱歉各位,拖更了很久,主要是因为生病了,动了个手术。现在好多了,回到定期更新的节奏了。

在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。

Renderer筛选

这时左面的阶层面板中将场景中的所有Mesh Renderer的物体都显示出来了,我们选中所有的Mesh物体。

选中所有物体

然后再回到Object选项中,勾选中Lightmap Static,这样的话,烘焙光照贴图的时候就会对所有的物体进行烘焙。然后再根据需求,更改光照贴图的分辨率吧。最后点击烘焙开始烘焙我们的场景。

上一篇下一篇

猜你喜欢

热点阅读