发表于2024-11-05
Unity入门经典
引用完整示例项目,快速掌握Unity游戏开发平台
免费提供书中所有源代码
熟练掌握基于2D和3D驱动的游戏技能
涵盖Unity5.0
本书帮助读者使用Unity游戏开发平台构建成功的游戏。 你将使用强大的C#语言、Unity的可视化工作流工具和的渲染引擎来构建和部署移动、桌面和控制台游戏。Unity的单一基于代码的方式小化了在开发工具间切换的影响,并将你的关注点集中在制作美妙的交互体验上。 本书教授你如何编写和部署游戏。你将从头开始掌握Unity的工具集,书中介绍了从应用编码者到游戏开发者所需的技能。每个示例项目都阐述了特定的Unity特性和游戏开发策略。阅读完本书内容和完成书中练习后,你将掌握创建生动的基于2D和3D驱动的游戏应用的各方面技能。 主要内容 ◆ 编写跑动、跳跃和交互的角色 ◆ 构建管理游戏状态的代码架构 ◆ 将游戏连接到互联网以下载动态数据 ◆ 将游戏部署到平台(包括网页和移动等) ◆ 涵盖Unity 5.0
Joseph Hocking是一位交互式媒体开发方面的软件工程师。他就职于Synapse Games公司并在芝加哥哥伦比亚学院教授游戏开发课程。
第Ⅰ部分起步
第1章初识Unity3
1.1为什么Unity如此优秀4
1.1.1Unity的优势4
1.1.2要意识到的缺点5
1.1.3使用Unity构建的游戏案例6
1.2如何使用Unity9
1.2.1Scene视图、Game视图和工具栏10
1.2.2使用鼠标和键盘11
1.2.3Hierarchy标签和Inspector12
1.2.4Project和Console标签12
1.3开始使用Unity编程13
1.3.1代码在Unity中是如何运行的:脚本组件14
1.3.2使用MonoDevelop,跨平台的IDE15
1.3.3打印到控制台:HelloWorld!16
1.4小结18
第2章构建一个让你置身3D空间的演示19
2.1在开始之前20
2.1.1对项目做计划20
2.1.2了解3D坐标空间21
2.2开始项目:在场景中放置对象22
2.2.1第二步:地板、外墙和内墙22
2.2.2灯光和摄像机25
2.2.3玩家的碰撞器和视口26
2.3让东西移动:应用变换的脚本27
2.3.1图示说明如何通过编程实现旋转27
2.3.2编写代码实现图中演示的运动27
2.3.3本地和全局坐标空间29
2.4用于观察周围的组件脚本:MouseLook30
2.4.1跟踪鼠标运动的水平旋转31
2.4.2在一定范围内的垂直旋转32
2.4.3同时水平和垂直旋转33
2.5键盘输入组件:第一人称控件36
2.5.1响应按下的键36
2.5.2设置独立于计算机运行速度的运动速率37
2.5.3为了碰撞检测,移动CharacterController38
2.5.4调整组件为走路而不是飞翔39
2.6小结41
第3章为3D游戏添加敌人和子弹43
3.1通过射线射击44
3.1.1什么是射线发射44
3.1.2使用命令ScreenPointToRay来发射45
3.1.3为准心和击中点添加可视化提示46
3.2脚本化反应的目标49
3.2.1确定被击中的对象49
3.2.2警告目标它被击中50
3.3基本漫游AI52
3.3.1图解基础AI的工作原理52
3.3.2使用射线发射发现障碍物52
3.3.3跟踪角色状态54
3.4产生敌人预设55
3.4.1什么是预设55
3.4.2创建敌人预设56
3.4.3在不可见的SceneController中实例化57
3.5通过实例化对象进行射击59
3.5.1创建子弹预设59
3.5.2发射子弹并和目标碰撞60
3.5.3伤害玩家63
3.6小结63
第4章为游戏开发图形65
4.1了解美术资源65
4.2构建基础3D场景:白盒67
4.2.1白盒的解释68
4.2.2为关卡绘制地板平面图68
4.2.3根据平面图布局几何体69
4.3使用2D图像给场景贴图70
4.3.1选择文件格式71
4.3.2导入图像文件72
4.3.3应用图像73
4.4使用贴图图像产生天空视觉效果75
4.4.1什么是天空盒75
4.4.2创建一个新天空盒材质76
4.5使用自定义3D模型77
4.5.1选择文件格式78
4.5.2导出和导入模型79
4.6使用粒子系统创建效果81
4.6.1调整默认效果的参数82
4.6.2为火焰应用新贴图83
4.6.3将粒子效果附加到3D对象上84
4.7小结85
第Ⅱ部分轻松工作
第5章使用Unity新的2D功能构建一款记忆力游戏89
5.1设置2D图形90
5.1.1为项目做准备90
5.1.2显示2D图像(亦称精灵)92
5.1.3将摄像机切换为2D模式94
5.2构建卡片对象并让它响应单击95
5.2.1从精灵构建对象95
5.2.2鼠标输入代码96
5.2.3当单击时显示卡片96
5.3显示不同的卡片图像97
5.3.1通过程序加载图像97
5.3.2通过不可见的SceneController来设置图像98
5.3.3实例化一个网格的卡片100
5.3.4打乱卡片101
5.4实现匹配和匹配得分103
5.4.1保存并比较翻开的卡片104
5.4.2隐藏错误卡片104
5.4.3显示积分的文本105
5.5重启按钮106
5.5.1使用SendMessage编写UIButton组件107
5.5.2从SceneController中调用LoadLevel109
5.6小结110
第6章在3D游戏中放置2D图形用户界面111
6.1在开始写代码之前......112
6.1.1直接模式GUI还是高级2D界面112
6.1.2规划布局113
6.1.3导入UI图像114
6.2设置GUI显示114
6.2.1为界面创建画布115
6.2.2按钮、图像和文本标签116
6.2.3控制UI元素的位置118
6.3编写UI中的交互119
6.3.1编写不可见的UIController120
6.3.2创建弹出窗口121
6.3.3使用滑动条和输入域设置值124
6.4通过响应事件更新游戏126
6.4.1集成事件系统127
6.4.2从场景中广播和侦听事件127
6.4.3从HUD广播和侦听事件128
6.5小结130
第7章创建第三人称3D游戏:玩家移动和动画131
7.1调整摄像机视图为第三人称视角133
7.1.1导入一个用于观察的角色133
7.1.2将阴影添加到场景134
7.1.3摄像机环绕玩家角色135
7.2编写程序控制camera-relative的移动137
7.2.1旋转角色,以朝向移动方向138
7.2.2朝着方向向前移动140
7.3实现跳跃动作141
7.3.1应用垂直速度和加速度142
7.3.2修改地面检测来处理边缘和斜坡143
7.4设置玩家角色上的动画146
7.4.1在导入的模型上定义动画剪辑148
7.4.2为动画创建动画控制器149
7.4.3编写操作Animator组件的代码153
7.5小结154
第8章在游戏中添加交互设施和物件155
8.1创建门和其他设施156
8.1.1由按键控制开/关的门156
8.1.2在开门之前检查距离和朝向157
8.1.3创建一个变色监控器159
8.2通过碰撞与对象交互160
8.2.1和具有物理功能的障碍物碰撞160
8.2.2用一个压力板来触发门161
8.2.3收集当前关卡游戏中分散的物件163
8.3管理仓库数据和游戏状态165
8.3.1设置玩家和仓库管理器165
8.3.2编程实现游戏管理器166
8.3.3把物品存储在集合对象中:List与Dictionary170
8.4使用和装备物品的仓库UI173
8.4.1在UI中显示仓库物品173
8.4.2装备一个用来开门的钥匙175
8.4.3通过使用血量包来恢复玩家的血量177
8.5小结178
第Ⅲ部分冲刺阶段
第9章将游戏连接到互联网181
9.1创建户外场景182
9.1.1使用天空盒生成天空视觉效果182
9.1.2通过代码设置大气环境183
9.2从互联网服务下载天气数据185
9.2.1使用协程请求WWW数据188
9.2.2解析XML192
9.2.3解析JSON193
9.2.4基于天气数据影响场景195
9.3添加一个网络布告栏196
9.3.1从互联网加载图像196
9.3.2在布告栏上显示图像199
9.3.3缓存下载的图像以供重用200
9.4将数据发送到Web服务器201
9.4.1跟踪当前的天气:发送post请求202
9.4.2PHP中的服务器端代码204
9.5小结204
第10章播放音频:音效和音乐205
10.1导入音效206
10.1.1所支持的文件格式206
10.1.2导入音频文件207
10.2播放音效208
10.2.1音频剪辑、音源和声音侦听器208
10.2.2设定一个循环声音209
10.2.3从代码触发音效210
10.3音频控制接口211
10.3.1建立中心AudioManager212
10.3.2音量控制UI214
10.3.3播放UI声音217
10.4背景音乐218
10.4.1播放循环音乐218
10.4.2独立控制音乐的音量221
10.4.3歌曲间的淡入淡出223
10.5小结226
第11章将各部分整合为一个完整的游戏227
11.1再次利用项目来构建角色扮演RPG228
11.1.1将多个项目的资源和代码装配在一起228
11.1.2编写指向-单击的控件:移动和设备231
11.1.3使用新界面替换旧GUI235
11.2开发总体的游戏结构241
11.2.1控制任务流和多关卡242
11.2.2通过到达退出条件完成一个关卡245
11.2.3当被敌人捕捉时关卡失败247
11.3处理玩家游戏过程中的进度249
11.3.1保存并加载玩家进度249
11.3.2通过完成三个关卡打败游戏253
11.4小结255
第12章将游戏部署到玩家的设备255
12.1构建桌面环境:Windows、Mac和Linux259
12.1.1构建应用259
12.1.2调整PlayerSettings:设置游戏的名称和图标260
12.1.3平台依赖的编译261
12.2为Web构建游戏262
12.2.1UnityPlayer和HTML/WebGL262
12.2.2构建Unity文件和一个测试Web页面262
12.2.3与浏览器中的JavaScript通信263
12.3构建移动应用的平台:iOS和Android264
12.3.1设置构建工具265
12.3.2贴图压缩268
12.3.3开发插件269
12.4小结277
附录A场景导航和键盘快捷键279
A.1使用鼠标进行场景导航279
A.2一般使用键盘快捷键280
附录B与Unity一同使用的外部工具281
B.1编程工具281
B.1.1VisualStudio281
B.1.2Xcode281
B.1.3AndroidSDK282
B.1.4SVN、Git或Mercurial282
B.23D美术应用282
B.2.1Maya282
B.2.23dsMax282
B.2.3Blender283
B.32D图像编辑器283
B.3.1Photoshop283
B.3.2GIMP283
B.3.3TexturePacker283
B.4音频软件283
B.4.1ProTools284
B.4.2Audacity284
附录C在Blender中建模一个板凳285
C.1构建网格几何体285
C.2模型贴图映射288
附录D在线学习资源293
D.1附加的指南293
D.2代码库294
后序297
序
我在1982年就开始进行游戏编程。那时候很困难,我们没有互联网。资源限制为少数糟糕的书籍和杂志,它们提供了迷人但混乱的代码片段,而对于游戏引擎,几乎没有可以参考的资料!编码游戏是一场大规模的艰苦战争。
非常羡慕你们可以阅读《Unity5实战使用C#和Unity开发多平台游戏》,Unity引擎已经为许多人打开了游戏编程的大门。Unity已经成为一个强大专业的游戏引擎,初学者易于掌握。
编辑器的可接近指的是通过恰当的引导可以很快上手。有一次,我花时间参加了一个由魔术师表演的马戏团。魔术师很快带我入戏并帮助我成为一个出色的表演者。魔术师说道:“当你站在台上,你需要许下‘我不会浪费你们时间’的承诺”。
我最喜欢《Unity5实战使用C#和Unity开发多平台游戏》的是“实践”部分。JosephHocking没有浪费你们的宝贵时间,并让你们的编码速度更快——不是编写无意义的代码,而是你可以理解和构建的有趣代码,因为他知道你不仅只是想阅读此书,不仅只是想编写这些示例——你想要编写自己的游戏。
在本书的指导下,你将很快能上手,远超乎你自己的期望。请随着Joseph的步伐学习,但当你准备好之后,不要羞于和他的学习路线分道扬镳并规划自己的学习路线。跳到你最感兴趣的部分——尝试实验,请大胆而勇敢地进行尝试!如果你迷失了方向,还可以返回到本书中。
我们不必在此序中浪费时间——接下来的整个游戏都在等着你开发!在你的日历上标记一下今天的日期,因为今天发生了翻天覆地的变化。你应该永远记住今天是你开始制作游戏的第一天。
JesseSchell
SchellGames的CEO
TheArtofGameDesign一书的作者
前言
我从事游戏编写工作已经有较长一段时间了,但最近才开始使用Unity。当我开始开发游戏时Unity尚未出现,它的第一个版本在2005年发布。从一开始,它就承诺要作为游戏开发工具,但直到一些新版本出现之前它并没有如自己许诺的那般。尤其是,类似iOS和Android(共同称为“移动”平台)这样的平台直到后来才出现,而这些平台为Unity的日益发展添加了重要的元素。
最开始,我将Unity视为一个有趣的开发工具,我关注它,但并不真正使用它。这段时间,我在为桌面计算机、网站编写游戏,为各种类型的客户端开发项目。我曾用类似Blitz3D和Flash这样的工具来编程,且感觉使用起来很方便,但要受到诸多限制。随着这些工具开始衰落,我就一直在寻找开发游戏的更好方式。
我开始围绕Unity的版本3进行体验,后来当SynapseGames(我现在工作的公司)开始开发移动时,我完全切换到Unity进行游戏开发工作。首先,我为Synapse开发网页游戏,但事实上我们将它们全部转换为移动游戏。而接着我们周而复始地将网页游戏发布为移动游戏,因为Unity允许我们部署到网页和移动平台,所有需要的只是同一个代码库!
我一直认为分享知识很重要,而我也已经教授游戏开发课程好几年。我这么做的部分原因要归因于我的很多导师和老师的表率作用(偶然,你可能甚至听说过我的一位老师,因为他是一位催人奋进的好老师:RandyPausch,他在2008年去世之前还讲授了简短的最后一课)。我已经在很多学校授过课,而我一直想写一本关于游戏开发的书籍。
在许多方面,本书所写的是我第一次学习Unity时所期望出现的教学内容。Unity的众多优点之一是有大量可用的巨大有价值的学习资源,但这些资源趋向于以不集中的碎片(诸如脚本指引或独立的教程)形式呈现并需要你很好地挖掘出所需要的内容。本书针对的读者群是那些已经知道了如何编程,但还是Unity新手,并且可能也是游戏开发新手的读者。书中项目的选择通过快速迭代不同项目以反映我获得技能的经验和秘密。
为了学习如何使用Unity开发游戏,你正在开始一次激动人心的冒险之旅。对于我,学习如何开发游戏则意味着进行一场激战。但对你而言,拥有了本书则意味着拥有了一份清晰简明的学习资源。
Unity 5实战 使用C#和Unity开发多平台游戏 下载 mobi pdf epub txt 电子书 格式 2024
Unity 5实战 使用C#和Unity开发多平台游戏 下载 mobi epub pdf 电子书书不错,价格有优惠,物超所值。推荐需要的朋友购买。
评分游戏编程参考书。。。
评分不错。比超市便宜,方便快捷。买了很多次了。
评分不读书,心里总感觉空落落的,从学校带出来的习惯……
评分物流很快,书的质量很好。
评分好垃圾的一本书 哎 啥子水平哦 我这种自认小白的人看了都蛋疼 毫无实用性的书 当初还是看了译者的博客推荐才买来看看 失望.
评分送货上门,书籍很有帮助。。。。。。
评分ok啦!!!!!!!!!!!!!!!!!!!!!!!!
评分好。。。。。,。。。,,,
Unity 5实战 使用C#和Unity开发多平台游戏 mobi epub pdf txt 电子书 格式下载 2024