《Unity 5.x游戏开发实战》一1.8 游戏测试与游戏选项卡

1.8 游戏测试与游戏选项卡

至此,已经使用Unity自带原型包(Prototyping Package)完成了金币采集游戏环境的构建。现在的游戏环境包含了两个主要的岛屿,岛屿上有一些建筑物,两个独立的岛屿通过一个石桥连接在一起,如图1.40所示。可能你的布局与图1.40看起来有一些不同,不过也是非常不错的。

总的来看,场景还是完成得不错,现在需要把这个场景保存一下。可以选择按下键盘上的“Ctrl + S”组合键,或者也可以如图1.41所示,从应用程序菜单上选择“File | Save Scene”选项。如果是第一次对场景进行保存,Unity会弹出一个“Save”对话框,提示为这个场景起一个名字(这里本书将这个场景起名为“level__01”)。

完成这个场景的保存之后,它就成为了当前项目的场景资源,同时也如图1.42一样出现在了项目(Project)面板中。这意味着当前的场景已经不再像以前是一个临时拼凑在一起的组合了,而是一个真正不可分割的整体。注意,对一个场景进行保存与对一个项目进行保存并不一样,比如在应用程序菜单上就分别有“Save Scene”和“Save Project”两个不同的选项。记住,一个项目是一些文件和文件夹的集合,它包含了游戏中的场景和资源。相比之下,一个场景是项目中的一个资源,外观就像是一个完整的3D地图。这个场景中包含了很多网格、纹理和声音。因此,保存一个项目是指将包括场景在其中的各种文件和资源的配置进行保存。而对场景的保存,只是将指定场景中关卡的变化进行保存。

注意 

从图1.42可以看出,已经将场景保存到了一个名为“scenes”的文件夹中。可以在项目(Project)面板上的任意空白区域单击鼠标右键来为自己的项目创建一个文件夹。另外,依次单击应用程序菜单上的“Assets | Create | Folder”,就可以轻易地使用鼠标拖放来完成对文件夹中的资源进行移动操作。

现在的这个关卡中并没有任何可以玩的东西。它只是一个使用编辑器开发出来的静止的、了无生趣的且与外界毫无交互行为的三维环境。现在给游戏添加可玩性,允许玩家通过控制键盘上的“W”“A”“S”“D”以第一人称视角的方式在这个游戏世界中进行环游和探索。为了实现这个目标,需要向场景中添加一个第一人称视角角色控制器(First-person Character Controller),它是Unity中自带的资源,本身已经包含了实现第一人称视角角色控制的所有功能。依次打开“Standard Assets | Characters | FirstPerson Character | Prefabs”文件夹,然后从项目(Project)面板拖动“FPSController”资源到场景中,如图1.43所示。

当添加了第一人称视角角色控制器以后,就可以单击Unity工具栏上的“Play”按钮以第一人称视角模式来进行游戏,如图1.44所示。

按下“Play”按钮之后,Unity就可以从场景(Scene)选项卡切换到游戏(Game)选项卡,正如所看到的,场景(Scene)选项卡是以一个开发者的视角来观看整个场景的,此时可以对场景进行编辑、制作和设计。相比之下,游戏(Game)选项卡是以一个游戏者的视角来查看整个场景的,只能进行游戏和测试。在游戏者的视角中,只能从主摄像机的角度来查看所有的场景。当激活了游戏(Game)选项卡,并启动“Play”模式后,可以使用游戏默认的控制方式开始这个游戏的测试工作。第一人称视角控制器使用键盘上的“W”“A”“S”“D”4个键来控制运动,使用鼠标来控制视角,如图1.45所示。

注意 

即使处于“Play”模式中,也可以随时切换到场景(Scene)选项卡中,甚至可以对场景进行编辑和修改,对场景中的对象进行移动和删除。但是要注意的是,所有,在“Play”模式期间进行的改动,在“Play”模式结束之后都会自动复原,也就是这些改动都不会被保留。这是一种特意的设计,它允许在游戏过程中对属性进行编辑,从而可以观察产生的影响,并对问题进行调试,但是却并不真正地对场景进行改动。

现在的关卡中已经可以实现以第一人称视角模式行走了。当结束游戏时,可以再一次单击“Play”按钮,或者按下键盘上的“Ctrl+P”组合键,之后就返回到场景(Scene)选项卡中了。

注意 

Unity中还提供了用来暂停和恢复游戏的“Toggle-Pause”按钮。

到现在为止,你应该已经注意到了,当在关卡中以第一人称视角控制器进行游戏的时候,在下面的控制台(Console)窗口中不断地输出一些信息。默认情况下,这个窗口位于Unity编辑器的下方,就在项目(Project)面板旁边,也可以通过在菜单栏上依次选中“Window|Console”人为地打开这个窗口。控制台(Console)窗口会将所有遇到的错误或者警告以消息的形式显示出来。错误都会以红颜色标记,警告都会以黄颜色进行标记,而普通的信息则会以默认的灰色显示。有时,一条消息只会显示一次,而有时却会显示很多次,如图1.46所示。

正如之前提到过的,在控制台(Console)窗口中可以输出3种不同类型的消息:信息、警告和错误。信息是指基于当前工作的项目给出的最佳建议和意见。警告是指在代码或者场景中出现了一些不太严重的问题,如果不改正,则可能会导致游戏中出现意想不到的行为以及不佳的游戏性能。错误消息描述了需要立即引起注意的代码和场景中的错误。有时,这些错误导致游戏根本无法工作,或者在运行的时候发生错误,从而引起游戏崩溃或者失去响应。此时控制台(Console)窗口就显得十分有用了,因为它可以实现对游戏进行调试。图1.46中就给出了一个关于“Audio Listener”重复的问题。

“Audio Listener”是一个连接到摄像机对象的组件。默认情况下,每一个摄像机都有一个“Audio Listener”组件,它像是一个耳朵,在摄像机所在的位置接收场景中的各种声音。但是,Unity中并不支持在同一场景中使用多个处于激活状态的“Audio Listener”。这也就意味着在同一地点同一时间只能听到一个声音。那么问题就产生了,因为现在的场景中已经包含了两个摄像机,其中一个是在创建场景时自动产生的,另外一个是添加的第一人称视角控制器中自带的。若想确认这一点,只需要在层次(Hierarchy)面板上选中第一人称视角控制器对象,之后单击它名字旁边的三角形图标,这样就会在这个物体的下方显示更多的对象,这些对象都是第一人称视角控制器的组成部分,如图1.47所示。

选中位于“FPSController”下方展开之后显示的“FirstPersonCharacter”对象,如图1.47所示。“FirstPersonCharacter”对象是“FPSController”对象的一个子对象。这一点从层次(Hierarchy)面板上的“FPSController”中包含了“FirstPersonCharacter”就可以看出来。子对象会继承它们上一级对象的变换(Transformation)属性。这表示当在场景中对某些对象进行移动或者旋转操作时,所做的变换同样会影响到它的所有子对象。在检查(Inspector)面板中,可以看到这个对象包含一个“Audio Listener”组件,如图1.48所示。

也可以选择将“Audio Listener”组件从FPSController对象上移除,但是这样做,游戏者在以第一人称视角进行游戏时就再也听不到声音了。所以,选择将场景创建之初自带的摄像机删除。只需要在层次(Hierarchy)面板上选中图1.49所示的摄像机,然后按下键盘上的“Delete”键即可完成删除操作。这样就可以消除在游戏进行时产生的关于“Audio Listener”的警告。现在可以开始游戏的试玩了!

时间: 2024-09-02 11:14:16

《Unity 5.x游戏开发实战》一1.8 游戏测试与游戏选项卡的相关文章

《HTML5 Canvas游戏开发实战》——1.5 测试与上传代码

1.5 测试与上传代码 在上传工程代码的时候,需要将工程里包含的HTML.图片及JavaScript等所有文件上传至服务器,并保证文件结构不变. 现在来写个简单的页面,测试一下我们的服务器和开发工具是否已经正确无误地安装完毕,同时也可了解一下代码如何在服务器上运行. 按照1.4节中的步骤,建立一个sample1.5.1工程,在工程中新建一个index.html文件,输入代码清单1-8中所示的代码. 代码清单 1-8 <!DOCTYPE html> <html lang="en&

《Unity 5.x游戏开发实战》一第2章 金币采集游戏(Ⅱ)

第2章 金币采集游戏(Ⅱ) Unity 5.x游戏开发实战这一章将会在第1章建立好的游戏基础上继续进行.在这个金币采集游戏中,玩家可以第一人称视角模式在整个游戏环境中进行漫游,在游戏规定时间到达之前,寻找并采集到所有的金币.如果在游戏规定时间结束前,玩家就已经完成了所有金币的采集工作,则视为游戏胜利.反之,如果到游戏规定时间结束时,玩家并没有完成所有金币的采集工作,则视为游戏失败.到目前为止,已经在这个项目中添加了一个完整的环境,环境中包括地面.道具.水.一个第一人称视角的控制器,及一个看起来已

《Unity 5.x游戏开发实战》一导读

前 言 Unity 5.x游戏开发实战视频游戏作为一种文化现象,在过去半个世纪已经在世界范围内吸引并娱乐了数十亿人.视频游戏作为一种产业和文化,无论对于开发者还是艺术家来说,都是一个令人兴奋的所在.通过游戏,你的意愿.想法和工作可以去影响更多的人,并且以一种前所未有的方式来塑造和改变一代又一代的人.在最近的一段时间里,兴起了一股游戏开发的平民化运动,目标是游戏的开发过程要更简单,游戏本身要更容易.更广泛地被人们所接受,包括开发者在预算有限的情况下,在家里就能从事游戏开发的工作.推动这项运动的倡导

《Unity 5.x游戏开发实战》一第1章 金币采集游戏(Ⅰ)

第1章 金币采集游戏(Ⅰ) Unity 5.x游戏开发实战本章将会以一个十分有趣的采集类游戏作为Unity的入门.即使你以前从来都没有使用过Unity这个游戏引擎,也无需有任何的担心.我们的教程将会一步一步地来指导你熟悉Unity.到了下一章结束的时候,你就可以利用所学的内容构造出一个比较简单但是功能相当完善的游戏.这将是一个非常重要的过程,因为在从始至终的开发中,你将会了解到整个游戏的实现流程. 在本章中将会学习到如下内容: Unity游戏的设计 Unity项目和目录 Unity资源(Asse

《Unity 5.x游戏开发实战》一1.3 项目和项目文件夹

1.3 项目和项目文件夹 现在Unity已经创建了一个空白的新项目.这里就是开发一个新游戏的起点,在这个新创建的项目中并不包含任何的东西,没有任何的网格,贴图或者其他资源.这一点只需要检查一下位于Unity编辑器界面下方的项目(Project)面板区域就可以确定.这个项目(Project)面板中会显示项目文件夹中的全部资源,同时它也对应着一个本地驱动器上的文件夹,而这个文件夹就是在之前项目向导中所创建的.这个文件夹如图1.5所示,现在也是空的.在这个游戏的开发过程中,还会使用到这个项目(Proj

《Unity 5.x游戏开发实战》一2.2 Unity中的C#脚本

2.2 Unity中的C#脚本 为游戏定义逻辑.规则和行为的时候,往往需要使用到脚本.如果想将那些静态的.无生命的场景和对象转换成为可以进行交互的环境和对象,那么开发人员就需要编写代码.这些代码定义了这些物体在遇到了指定情况之后,应该做出什么样的反应.金币采集游戏也需要编写代码才能实现所有的功能.这个游戏需要实现3个主要的 功能: 能够感知玩家是否收集到金币: 在游戏进行中,能够及时了解到玩家收集的金币数量: 能确定游戏时间是否已经结束. 在Unity中并没有包含一个能实现上述功能的模块.所以必

《Unity 5.x游戏开发实战》一1.4 开始一个关卡

1.4 开始一个关卡 现在已经创建了一个Unity的项目,并且利用Unity的标准资源包导入了一个很大的资源库,包括一些建筑类网格,例如墙.地板.天花板.楼梯等,将使用这些资源建立第一个关卡(level).记住,在Unity中,一个场景(Scene)往往也就意味着一个关卡.场景和关卡这两个词汇在这里是没有区别的,都是指一个三维空间,也就是游戏发生的时空.现在来创建一个金币采集游戏的场景,首先从应用程序菜单依次选择"File | New",或者也可以在键盘上按下"Ctrl +

《Unity 5.x游戏开发实战》一2.7 庆典和焰火

默认情况下,所有的焰火粒子系统都会在关卡一开始时执行.可以通过在工具栏上单击"Play"按钮来测试这个游戏.不过这并不是所希望的效果,我们所设计的效果应该是当游戏者达成胜利条件以后,才执行这个焰火的特效.在场景中选中焰火粒子系统对象,然后在对象的 Inspector 面板上取消组件"Particle System"上单选框"Play On Awake"的选中状态,取消"Play On Awake"的功能,如图2.30所示. 取

《Unity 5.x游戏开发实战》一2.1 创建一个金币的材质

2.1 创建一个金币的材质 在上一章结束时,通过将一个初始的圆柱形(Cylinder)对象进行不均匀的缩放,从而产生了一个基本的金币对象.依次单击应用程序菜单上的"GameObject | 3D Object | Cylinder"可以创建该对象,结果如图2.1所示.从概念上来说,金币对象是游戏逻辑中的一个基本单位,玩家在游戏时间耗尽之前要尽力地去采集这些金币.这意味着这些金币并不能仅仅是被看到就行了,其主要目的是实现游戏的功能,玩家是否收集到了金币将意味不同的游戏结果.因此,现在的金