
1.4.1 游戏场景的搭建及相关设置
下面介绍如何创建游戏项目并搭建游戏场景,读者可以通过这些操作步骤对使用Unity开发游戏有一些基本认识。具体操作步骤如下。
(1)打开Unity Hub,单击“新建”按钮,打开“创建新项目”窗口,然后创建并打开一个Unity 3D项目,如图1-3所示。

图1-3
(2)导入素材,将该游戏所要用到的素材复制到新建项目的“Assets”文件夹中,素材来源及文件路径详情参见1.2.2节的相关内容。
(3)在工程窗口(Project)的空白处单击鼠标右键,在弹出的右键菜单中执行“Create->Scene”命令,新建场景文件“Scene”,然后双击打开Scene场景。当前项目只使用了这个场景文件。
(4)布置场景地面。在层级窗口(Hierarchy)的空白处单击鼠标右键,在弹出的右键菜单中执行“3D Object->Cube”命令,新建一个长方体,将其命名为“Ground”。在检视窗口(Inspector)中将Transform的缩放(Scale)设为(20,1,20),并单击“Add Component”按钮,添加Box Collider组件,将Box Collider的尺寸(Size)设为(5,1,5)。
(5)布置机器人模型。在层级窗口(Hierarchy)中单击鼠标右键,在弹出的右键菜单中执行“3D Object->Sphere”命令,新建一个球体,将其命名为“Player”,也就是玩家控制的机器人。选中Player并单击鼠标右键,在弹出的右键菜单中执行“3D Object->Capsule”命令,新建一个胶囊体,将其命名为“Body”,作为Player的子物体。选中Body并单击鼠标右键,在弹出的右键菜单中执行“Create Empty”命令,新建一个空游戏物体,将其命名为“Hands”,在 Hands下新建两个长方体(LeftHand和Right Hand)作为机器人的左右手。机器人的模型组装层级如图1-4所示,机器人的组装效果如图1-5所示。

图1-4

图1-5
(6)为机器人添加组件。选中 Player,在检视窗口(Inspector)中单击“Add Component”按钮,搜索并添加Sphere Collider和Rigidbody两个组件。分别选中机器人的两个手臂,添加Box Collider组件,并分别勾选Box Collider组件上的“Is Trigger”复选框。
(7)布置灯柱。在场景中新建一个空游戏物体,并将其命名为“LightManage”,在LightManage下新建一个圆柱体,作为灯柱的柱子,再新建一个球体,作为柱子的子物体,灯柱的组合效果如图1-6所示。

图1-6
(8)为灯柱添加组件。在每个灯柱上添加一个Capsule Collider组件,调整碰撞体的大小,将半径(Radius)设为2。
(9)将灯柱复制三次,将这四个灯柱放置到地板的四个角落。
(10)新建四个立方体,作为移动的方块,为每个方块添加Box Collider组件和Rigidbody组件,如图1-7所示。

图1-7
(11)调整场景中的主摄像机(Main Camera),将其沿X轴旋转60度,将画面设为斜向俯视视角,主摄像机的角度和位置如图1-8所示。

图1-8
(12)新建一个实时渲染贴图,用于实现小地图功能。在工程窗口(Project)的空白处单击鼠标右键,在弹出的右键菜单中执行“Create->Render Texture”命令,新建一个实时渲染贴图,将其命名为“Map Render Texture”。
(13)在层级窗口(Hierarchy)下单击鼠标右键,在弹出的右键菜单中执行“Camera”命令,新建一个摄像机,将其命名为“Map Camera”,调整Map Camera的角度和位置,使该摄像机正好垂直于前文布置的场景。该摄像机专门用来拍摄小地图画面,小地图摄像机的角度和位置如图1-9所示。

图1-9
(14)设置Map Camera的属性。将清除标记(Clear Flags)设为Solid Color,投影矩阵(Projection)设为Orthographic,尺寸(Size)设为12,目标材质(Target Texture)设为Map Render Texture。其中,Map Render Texture是步骤(12)创建的实时渲染贴图。
(15)在层级窗口(Hierarchy)中单击鼠标右键,在弹出的右键菜单中执行“UI->Raw Image”命令,新建一个 UI 图片,Unity 会自动新建画布(Canvas)和事件系统(EventSystem)的两个游戏物体。
(16)将UI图片的位置设在画面的右上角,将其贴图(Texture)属性设为Map Render Texture,小地图的位置如图1-10所示。
(17)对画布单击鼠标右键,在弹出的右键菜单中执行“UI->Button”命令,新建一个按钮,将其命名为“AgainButton”。将AgainButton按钮调整为合适大小,选中其子物体Text,将Text设为“再来一次”。具体效果可以参考图1-2。
(18)单击AgainButton按钮,勾选检视窗口(Inspector)左上角的复选框,将AgainButton按钮隐藏。
至此,就完成了《拉方块》游戏的场景搭建与设置。

图1-10