Unity 3D 完全自学教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.11 动手搭建游戏场景

接下来,我们搭建一个最简单的游戏场景,一方面可以熟悉 Unity 的基本操作,另一方面,也为之后的学习做准备。我们要做的场景非常简单,如下图所示。

1.创建工程

打开Unity并创建一个工程HelloUnity。

2.添加地板

在层级窗口中单击鼠标右键,选择3D Object>Plane,就可以新建一个平面。平面适合作为简单游戏的地板。注意:

· 如果在创建之前选中了某个物体,则创建的物体会成为子物体。如果出现这种情况,只需要在层级窗口中拖动物体重新调整父子关系即可,见1.6节。

· 新创建的物体名为Plane,将其改名为Ground是一种很好的习惯,否则物体多了不利于查看和查找。重命名物体类似于重命名文件,有多种操作,比如可以在右键菜单中选择Rename(重命名),或者选中物体之后按下F2键,还可以再次单击名称。

确保平面层次正确之后,在检视窗口中设置其位置为(0,0,0)。

将地板放在坐标原点有助于我们以后计算坐标。

在这步操作以及接下来的操作中,读者会发现实际上经常需要调整查看场景的角度。也就是说,无论要制作什么样的场景,浏览场景的操作是最频繁出现的。关于浏览场景的基本操作,可以查看1.6节,对照阅读效果会更佳。

3.添加第一道围墙

与添加地板类似,添加4道围墙,用Cube(立方体)即可。

为方便起见,可以先只制作一个,之后可以再复制,将Cube命名为Wall1。

通过设置正方体缩放的某个维度,可以拉伸正方体成长条状,这里我们拉伸X方向为原来的10倍左右。然后摆放正方体的位置到平面的一侧作为围墙。

正方体的参考位置和缩放如下图所示,用鼠标直接拖动得到的位置很不精确,可以在检视窗口中直接调节数值。

4.其他三道围墙

有了第一道围墙以后,其他三道围墙也是同样的操作。在实际工作中有很多方法可以快速搭建这个场景。首先,制作和第一道围墙相对的围墙时,可以选中第一道墙后按 Ctrl+D 组合键进行复制(Duplicate),然后设定位置,改名为Wall2即可。

制作其他两道围墙有两种做法,一是将第一道围墙沿 Y 轴旋转 90°;二是重新创建一个方块并拉伸Z轴。这两种方法都可以达到目的。对于简单游戏来说,笔者通常更喜欢不旋转的方法,因为一旦加入了旋转,坐标系就变化了,问题变得更复杂。但是在这个简单的例子中没有太多问题,根据个人喜好来制作即可,如果以后想要改变方法,重新制作也不难。

四道墙搭建好之后的效果如下图所示。可以通过改变围墙的长度或位置让四个角更好看一些。

5.修改物体的颜色

物体的默认材质是白色的基础材质,要改变默认材质时,不能直接修改颜色,而要先替换为新的材质,然后才能进行修改。首先在工程窗口的任意目录新建一个材质文件,在某个资源目录下单击鼠标右键,选择Create>Material即可新建材质。

同理,一共需要两个材质,分别将材质文件命名为Ground和Wall,表示地面和墙体的材质。

之后修改材质颜色,只要选中材质文件后,修改检视窗口中Albedo(固有色)的颜色即可。这里甚至可以为Albedo指定一张贴图,实现带有图案的地板和墙面的效果。

之后用这两个材质替换墙和地板的材质,最简单的方法是将材质拖曳到场景视图中的物体上。

另外,也可以先选中物体,将材质拖动到物体的检视窗口里(要拖到最下面空白部分才可以)。这两种方法都会把默认材质替换为独立的材质文件,且不会添加新的组件。顺便说一句:材质是网格渲染器(Mesh Renderer)组件的参数。

如下图所示,调整后我们有了彩色的地板和墙,可以很方便地看到效果。

6.调整摄像机

虽然目前在场景视图中的效果看起来很美好,但在游戏视图中看到的可能是下图这样的效果。

这是因为默认的摄像机是沿Z轴方向平视的,而不是向下的。接下来调整摄像机到一个合适的位置。

首先,用旋转工具将摄像机向下旋转 45°左右。然后调节它的位置,先向上移动,再适当前进,让地板出现在游戏窗口的视野中。这里有两种方式查看场景,采用第一种方式时摄像机的预览窗口会出现在场景视图中;更推荐的方式是使用默认的2 by 3布局,同时看到场景视图和游戏视图,边看效果边调节摄像机。

默认的工具坐标系是世界坐标系,调节摄像机位置是沿着世界坐标系的Y轴和Z轴移动的。实际上,这里有一种更合适的方式,就是将工具坐标系切换为本地坐标系,如下图所示。

使用局部坐标系之后,你会发现利用摄像机的Z轴可以更直接调节摄像机到地板的距离。在搭建场景时往往需要根据要求反复切换工具的坐标系。

7.添加一个小球

创建一个球体并放在合适的位置上,步骤不再赘述。

有趣的是,你可以把小球适当放高一些,然后加上刚体组件。只需要选中小球,在检视窗口中单击最下面的Add Component按钮,然后搜索rigid或者选择Physics>Rigidbody即可。

刚体默认是开启了重力的,所以播放游戏时,小球会落在地面上。