
嗨,habrozhiteli! Unity in Action的第二版已经过重新设计,向您介绍可以帮助您充分利用Unity进行游戏开发的新方法和创意。 二维游戏的设计更加受到关注,读者可以将其基本概念付诸实践,并构建一个复杂的二维平台游戏。 这本书可以安全地称为专业程序员的Unity入门。 约瑟夫·霍金(Joseph Hawking)为具有开发经验的人们提供所有必要的信息,以帮助他们快速学习新工具并开始创建新游戏。 最好是从特定项目和实际任务中学习。
Unity通常被表示为一组不需要编程的组件,这从根本上是错误的。 要创建成功的游戏,需要做很多事情:艺术家的出色工作,编程技巧,有趣的故事,引人入胜的游戏玩法,开发团队友好而协调的工作。 而且,我们绝对不能忘记在从游戏机到手机的所有平台上无可挑剔的可视化和高质量的工作。 Unity结合了强大的引擎,专业的编程机会和富有创造力的设计师,使您能够实现最令人难以置信的,最雄心勃勃的项目。
掌握Unity并开始更快地创建自己的游戏!
书籍结构
第1章介绍Unity,这是一个跨平台的游戏开发环境。 您将学习Unity基础的基本组件系统,并学习如何编写和执行基本脚本。
在第2章中,我们将继续编写一个程序来演示三维空间中的运动,同时检查诸如鼠标和键盘输入之类的主题。 详细说明了三维空间中对象的位置确定及其旋转操作。
在第3章中,我们将通过演示光束发射方法和人工智能的基础知识,将演示程序变成第一人称射击游戏。 所有版本的游戏都需要发出光线(我们在场景中创建一条线并查看其相交)。
第4章专门介绍导入和创建游戏资源。 这是本书中唯一没有代码扮演核心角色的章节,因为每个项目都需要(基本)模型和纹理。
第5章教您如何在Unity中创建二维游戏。 尽管此工具最初仅用于创建三维图形,但现在它完美支持二维图形。
第6章继续以平台游戏为例,解释创建二维游戏的原理。 特别是,我们实现控件,模拟角色的物理环境和动画。
第7章介绍Unity中的最新GUI功能。 所有游戏都需要用户界面,而最新版本的Unity拥有改进的用户界面创建系统。
在第8章中,我们将创建另一个程序,该程序演示三维空间中的运动,但是这次是从外部观察者的角度进行的。 第三方控件的实现将使您对三维空间中的关键数学运算有所了解,此外,您还将学习如何使用动画角色。
第9章介绍了如何在游戏中实现交互式设备和元素。 玩家将有多种使用这些设备的方式,包括直接触摸,触摸游戏内部的触发器或按下控制器按钮。
第10章讲授与万维网的交互。 您将学习如何使用标准技术(例如HTTP请求从服务器接收XML数据)发送和接收数据。
在第11章中,您将学习如何在游戏中添加声音。 在Unity中,显着支持短音效和长录音带。 这两种声音选项对于几乎所有视频游戏都是至关重要的。
在第12章中,我们将各个章节的片段放在一起,最后得到一个游戏。 此外,您还将学习如何对使用鼠标操作的控件进行编程并保存游戏。
关于作者
约瑟夫·霍金(Joseph Hawking)居住在芝加哥,并为交互式环境开发软件。 他为InContext Solutions工作。 这本书的第一版是他在Synapse Games期间写的。 他还在伊利诺伊大学,芝加哥艺术学院和哥伦比亚大学教授游戏开发。 他的网站是
www.newarteest.com 。
摘录。 6.4.2。 向上推
让我们教角色跳跃。 为此,当您按下“跳转”按钮时,角色必须向上推。 水平移动速度直接在代码中进行编辑,而垂直移动的速度将有所不同,以免干扰重力。 事实是,有多个力可以同时影响一个对象,因此我们向其添加向上的力。 将此代码粘贴到运动脚本中。
注意AddForce()命令。 上升力以脉冲模式添加到刚体组件; 与连续作用的力不同,冲动是突然的推动。 在代码中,按下空格键后会发生这种震动。 同时,重力继续作用于角色,因此,在跳跃之后,他描绘出了优美的弧线。
但是,也许您已经注意到了一个缺点,我们正在努力消除这一缺点。
6.4.3。 表面识别
跳跃控制的一个小缺点是:在飞行中跳跃的能力(角色已经跳跃或跌倒时)。 在这种情况下,即使不能按空格键,也会产生冲动。 跳转控件仅适用于站在平台上的角色。 因此,您需要学习如何确定字符是否在表面上。
该代码抢走了空中跳跃的能力。 它检查角色下是否存在对撞机,并考虑跳转条件下的检查结果。 首先,确定角色碰撞原语的边界,然后在角色腿正下方等宽的区域中搜索重叠的对撞机。 检查结果存储在接地变量中,并在条件语句中使用。
6.5。 其他平台功能
因此,我们找出了角色动作,行走和跳跃的细微差别。 我们将以新的环境功能补充我们的游戏演示。
使用TILEMAP_设计层次
在项目框架中,地板和平台是由空白的矩形创建的。 游戏的最终版本需要更精细的图形,但是计算机不太可能能够处理整个级别的图像。 通常,使用tilemap工具解决此问题。 它使您可以根据网格原理设计图像。 这是它的外观。
请注意:地图完全由小单元组成。 这样一来,您就可以用图像覆盖整个屏幕,而不必求助于太大的图像。
官方的tilemap工具已添加到Unity应用的最新版本。 您还可以使用外部库,例如Tiled2Unity,该系统导入在流行的(和免费的)Tiled编辑器中创建的地图。
6.5.1。 倾斜和单侧平台
现在,在我们的游戏中,只有一个普通的地板和一个可以跳跃的障碍物。 但是还有其他平台选项。 我们将使用它们来使场景多样化。 让我们从倾斜部分开始。 创建Floor对象的副本,将其命名为Slope,在旋转变换字段中输入值0、0,-25,然后将其向左移动,将–3.47,–1.27、0的值分配给变换变换的坐标。
开始播放场景。 在移动过程中,角色可以正确上下滑动。 但是由于重力,它开始向下滑动并处于静止状态。 要解决此问题,当角色(a)在平台上,(b)处于静止状态时,应该禁用重力模拟。 幸运的是,我们已经教会他识别表面,并且可以在新的代码段中使用它。 您只需要添加一行。
编辑动作代码后,角色开始在倾斜表面上正确运行。 现在添加所谓的单向平台。 角色不仅可以站立在角色上,还可以在角色上跳跃。 当您尝试通过常规平台跳跃时,角色会为此撞到他的头。
单面平台经常出现在游戏中,因此Unity可以实现它们。 如果您还记得的话,在之前添加Platform Effector组件时,我们未选中“使用单向”复选框。 现在我们需要它! 再次创建Floor对象的副本,将其命名为Platform,在比例字段中输入值10、1、1,然后将结果对象放置在地板上方,为其指定坐标-1.68、0.11、0,并确保选中该部分中的Use One Way复选框。平台效应器2D。
角色向上跳跃时将能够在平台上飞行,但会阻止向下移动。 仅需要解决一个缺点。 如图所示。 6.11。 在Unity中,可以在角色的顶部显示平台精灵(为了使其更容易看到,请将jumpForce变量设置为7。您可以像上一章一样编辑角色的Z坐标,但是这次我们将以不同的方式进行操作。负责渲染的组件精灵,有一个排序顺序可以确定哪个精灵将显示在顶部。选择“播放器”对象,然后将“精灵渲染器”部分的“图层顺序”参数设置为1。
现在,场景具有倾斜的地板片段和单向平台。 但是还有另一个不寻常的选择,它的实现比您已经知道的平台要难一些。 让我们看看这是如何完成的。
6.5.2。 移动平台
在平台游戏中常见的不寻常性别的第三个版本是移动平台。 要在我们的游戏中添加这样的平台,首先,您需要编写一个控制其动作的新脚本,其次,要编辑角色动作的脚本。 在新方案中,平台将在两点之间移动:起点和终点。 创建一个名为MovingPlatform的C#脚本,并向其中添加以下代码。
自定义GIZMOS _________________________________________
读书过程中编写的大多数代码都会对游戏中发生的事情进行编程。 但是Unity脚本允许您影响内置编辑器。 许多人不知道您可以向Unity添加其他菜单和窗口。 此外,在它们的帮助下,在“场景”选项卡上创建了辅助对象,这些辅助对象称为维容器(小控件)。
您已经遇到了散装容器。 还记得指定对撞机的绿色平行六面体吗? 它们内置在Unity中,但是没有人会为您自己的整体容器编写脚本。 例如,在“场景”选项卡上,创建与平台轨迹相对应的线。 如图所示。
绘制这样一条线的代码非常简单。 在影响Unity界面的代码的顶部,使用UnityEditor添加该行; (因为大多数编辑器功能都在此特定的名称空间中),但是在这种情况下,这不是必需的。 只需将此方法添加到您的MovingPlatform脚本中:
... void OnDrawGizmos() { Gizmos.color = Color.red; Gizmos.DrawLine(transform.position, finishPos); } ...
关于此代码,理解以下内容很重要。 首先,所有操作都在OnDrawGizmos()方法内部完成。 这是系统名称,以及Start和Update方法的名称。 其次,我们在此方法中添加了两行代码:第一行设置行的颜色,第二行强制Unity从平台所在位置到目标点绘制一条线。
将此脚本拖到平台上。 开始播放场景,您会发现现在平台正在左右移动! 仍然需要编辑控制角色移动的脚本,以便将其与移动平台关联。 进行以下更改。
现在,跳到平台上的角色将随之移动。 实际上,一切归结为将角色变成平台的孩子。 我希望您还记得,在形成层次关系之后,孩子开始跟随父母移动。 清单6.7中的GetComponent()方法检查是否识别出的曲面是移动平台。 在测试结果为阳性的情况下,她成为与角色有关的祖先; 否则,角色与任何祖先断开连接。
但是有一个问题。 角色继承自平台和缩放比例转换,从而影响其大小。 可以通过逆变换来纠正这种情况(减小角色的比例,补偿平台引起的尺寸增加)。
在数学上,缩放补偿看起来非常简单:为玩家分配1除以平台比例。 当玩家的比例乘以平台的比例后,结果为1。在这种情况下,唯一困难的时刻是考虑确定运动方向的符号; 也许您还记得,据此,角色从一边转向另一边。
因此,我们在游戏中添加了移动平台。 最后还有一点点,演示版本将完全准备就绪...
»这本书的更多信息可以
在出版商的网站上找到»
目录»
摘录小贩优惠券20%
-UnityPS:这本书的成本的7%将用于新计算机书籍的翻译,移交给印刷厂的书籍清单在
此处 。