Unity游戏案例开发大全
上QQ阅读APP看书,第一时间看更新

3.3 游戏的架构

上一小节实现了游戏的策划和前期准备工作,本节将对该游戏的架构进行简单地介绍,读者可以通过本节进一步了解游戏的开发思路,使读者对本游戏的开发有更深层次的认识。

3.3.1 游戏各个场景的简要介绍

在Unity中,场景的开发是游戏开发的主要工作。每个场景包含了多个游戏组成对象,其中某些对象还被附加了特定功能的脚本。本游戏包含两个场景。

1.菜单界面

菜单界面是游戏最基本的架构,也是各个场景相互转换的中心管理界面。下面,将该游戏的几大重要菜单场景进行逐一介绍。

主菜单场景

主菜单界面“MainMenus”是转向各个场景的中心场景,在该界面中可以通过单击按钮进入其他界面,如游戏种类选择界面、声音控制界面、帮助界面、关于界面以及游戏关卡选择界面。

该场景中的主摄像机“Main Camera”游戏对象被挂载了不同的脚本组件,包括“MainLayer”脚本组件、“ConstOfMenu”脚本组件以及“StartMusic”脚本组件。它们分别负责不同的工作,已达到最终呈现的完好效果。

在该场景中有小球“Ball”游戏对象木箱“Box”游戏对象、“Pointlight”点光源,以及“Wall”游戏对象。其中,“Ball”游戏对象被挂载了“BallWalk”脚本组件,负责小球根据重力进行移动。

音乐设置场景音乐设置界面“SetMusic”主要负责对游戏的背景音乐以及音效的开关控制。其中,主摄像机“Main Camera”游戏对象被挂载了“MusicLayer”脚本组件,负责界面的绘制和声音开关的控制。

帮助场景

帮助界面“HelpGames”主要负责介绍该游戏的玩法。其中,主摄像机“Main Camera”游戏对象被挂载了“HelpLayer”脚本组件,负责界面的绘制。

在该场景中有两个“Plane”游戏对象,主要负责承载帮助界面图。还有一个平行光源“Directionallight”游戏对象,负责光源问题。

关于场景

关于界面“AboutGames”主要负责绘制与本游戏相关的版权信息等。其中,主摄像机“Main Camera”游戏对象被挂载了“AboutLayer”脚本组件,负责界面的绘制。

选择关卡场景

选择关卡界面“GamesMenu”主要负责绘制选择游戏关卡界面。其中,主摄像机“Main Camera”游戏对象被挂载了“ChoiceLayer”脚本组件,负责绘制界面,其中包括背景图以及四个关卡的按钮。

2.游戏界面

游戏界面是本游戏最为重要的界面,也是本游戏的开发重点。本游戏的游戏界面分为四个关卡。每个关卡有自己的独有特色,供玩家选择。每一个关卡迷宫的设计也都非常巧妙。下面,将该游戏的四大游戏关卡场景进行逐一介绍。

关卡一场景

关卡一界面“GameOne”场景以黑白色为主题,在该场景中包括两个摄像机游戏对象——“FirstCamera”对象和“Main Camera”对象,分别挂载了“GameLayer”脚本组件和“LookAllGameLayer”脚本组件。

在该关卡中包括了小球对象“Ball1”,被挂载了“BallMove”脚本组件,负责小球移动。若干木箱“Boxs”游戏对象,被挂载“DragObject”脚本组件,负责木箱移动。

“BallFallTrigger”触发地板游戏对象,被挂载了“BallFallTrigger”脚本组件,负责小球坠落事件处理。“PlaneTrigger”笑脸终点触发对象,被挂载了“PlaneTrigger”游戏对象,负责小球顺利到达终点事件处理。

其中还包括平行光源“Directionallight”以及地板模型“GameOneFloor”,地板模型是通过3ds Max生成的FBX文件,然后导入Unity使用的。

关卡二场景

关卡二界面“GameTwo”主要以绿地为主题。在该场景中包括两个摄像机游戏对象——“FirstCamera”对象和“Main Camera”对象,分别挂载了“GameLayer”脚本组件和“LookAllGameLayer”脚本组件。

在该场景中特殊存在的3个绿树模型“TREE”,同样是通过3ds Max生成的FBX文件,然后导入Unity使用的。同时有一块木块游戏对象“Box004”需要匀速旋转,作为迷宫的障碍,被挂载了“CueRotation”脚本组件,负责使木块旋转。

该关卡的小球对象“Ball2”,同样被挂载了“BallMove”脚本组件,负责小球移动。其他的游戏对象以及脚本组件与第一关类似,不再赘述。

关卡三场景

关卡三界面“GameThree”主要以童年为主题。在该场景中包括两个摄像机游戏对象——“FirstCamera”对象和“Main Camera”对象,分别挂载了“GameLayer”脚本组件和“LookAllGameLayer”脚本组件。

由于以童年为主题,该场景特殊之处为导入的两个“Pencel”铅笔模型,以及充满童年色彩的触发器地盘贴图和迷宫样式设计。

该关卡的小球对象“Ball3”,同样被挂载了“BallMove”脚本组件,负责小球移动。其他的游戏对象以及脚本组件与第一关类似,不再赘述。

关卡四场景

关卡四界面“GameFour”主要以炫彩为主题。在该场景中包括两个摄像机游戏对象——“FirstCamera”对象和“Main Camera”对象,分别挂载了“GameLayer”脚本组件和“LookAll GameLayer”脚本组件。

该关卡的特殊之处是一个方形迷宫和一个圆形迷宫相连,若小球在通道处掉落,也会导致游戏失败。同时游戏对象“rotation”作为迷宫的障碍,被挂载了“Cue2Rotaion”脚本组件,负责该机械模型的迅速转动。

该关卡的小球对象“Ball4”同样被挂载了“BallMove”脚本组件,负责小球移动。其他的游戏对象以及脚本组件与第一关类似,不再赘述。

游戏胜利场景

游戏胜利界面“GameWin”主要负责绘制游戏胜利界面,通过该场景可以重玩该关卡或者继续下一关。其中,主摄像机“Main Camera”游戏对象被挂载了“GameWinLayer”脚本组件,负责绘制界面,和“返回”、“重玩”、“继续”三个按钮。

游戏失败场景

游戏失败界面“GameLose”主要负责绘制游戏失败界面,通过该场景可以重玩该关卡。其中,主摄像机“Main Camera”游戏对象被挂载了“GameLoseLayer”脚本组件,负责绘制界面和“返回”、“重玩”两个按钮。

3.3.2 游戏框架简介

上一小节已经对该游戏中所用到的类进行了简单介绍,可能读者还没有理解游戏的架构以及游戏的运行过程。接下来本小节将从游戏的整体架构上进行介绍,使读者对本游戏有更好的理解,其框架如图3-19所示。

▲图3-19 游戏框架图

从图3-19中可以看出,本游戏主要由十一个界面组成,接下来按照程序运行的顺序介绍各个界面的作用以及游戏的整体框架,具体步骤如下。

(1)打开本游戏,首先进入主菜单界面“MainMenus”,主摄像机“Main Camera”被激活,其上挂载的脚本开始执行,显示出主菜单界面。

(2)在主菜单中单击开始游戏样式按钮,进入选择关卡界面。选择四个关卡中的任意一个后,进入相应的游戏界面。

(3)在主菜单界面中单击“设置”按钮可弹出设置音乐界面,可以对游戏的背景音乐和游戏音效进行设置,在设置子界面单击音乐开关按钮可以开关背景音乐,单击音效开关按钮可以开关游戏音效。

(4)在主菜单界面中单击“帮助”按钮可以从主菜单界面切换到帮助界面,可以按上下翻页按钮查看游戏的帮助信息。按返回键可以返回主菜单界面。

(5)在主菜单界面中单击“关于”按钮可以从主菜单界面切换到关于界面,可查看本游戏的关于信息。单击返回键,可以返回主菜单界面。

(6)在主菜单界面单击退出键,游戏就会正常结束并退出整个程序。