本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过10个不同类型的游戏实例,展示了真正的游戏设计和实现过程。本书的重点并不在于讲解Unity的各种功能细节,而在于核心玩法的设计和实现思路。每个实例都从一个idea 开始,不断丰富,自然而然地推出各种概念,引导读者思考必要的数据结构和编程方法。掌握了这些思路,即便换成另外一种引擎,也可以轻松地开发出同类型的游戏。
本书适合具有一定Unity 和C# 基础的游戏开发者阅读。
第0章 Unity概要1
0.1 Unity基础 Concept2
0.1.1 脚本一览2
0.1.2 本章小节2
0.1.3 本章开发的小游戏2
0.2 入门教程(上)——创建项目 Tips3
0.2.1 概要3
0.2.2 创建新项目3
0.2.3 创建地面(创建游戏对象)4
0.2.4 创建场景,保存项目5
0.2.5 让地面围绕原点移动7
0.2.6 调整场景视图的摄像机8
0.2.7 创建方块和小球(创建游戏对象并调整坐标)9
0.2.8 运行游戏12
0.2.9 模拟物理运动(添加Rigidbody组件)12
0.2.10 让小方块跳起来(添加游戏脚本)13
0.2.11 修改游戏对象的名字17
0.2.12 修改游戏对象的颜色(创建材质)17
0.2.13 让画面更明亮(创建光源)19
0.2.14 调整游戏画面的尺寸(调整播放器设置)19
0.2.15 小结21
0.3 入门教程(下)——让游戏更有趣 Tips21
0.3.1 概要21
0.3.2 让小球飞起来(物理运动和速度)21
0.3.3 创建大量小球(预设游戏对象)23
0.3.4 整理项目视图24
0.3.5 发射小球(通过脚本创建游戏对象)26
0.3.6 删除画面外的小球(通过脚本删除游戏对象)29
0.3.7 防止小方块在空中起跳(发生碰撞时的处理)30
0.3.8 禁止小方块旋转(抑制旋转)32
0.3.9 让小方块不被弹开(设置重量)33
0.3.10 让小球强烈反弹(设置物理材质)34
0.3.11 消除“漂浮感”(调整重力大小)36
0.3.12 调整摄像机的位置37
0.3.13 修复空中起跳的bug(区分碰撞对象)39
0.3.14 小结44
0.4 C#和JavaScript的对比 Tips44
0.4.1 概要44
0.4.2 类的定义45
0.4.3 变量定义45
0.4.4 函数的定义46
0.4.5 作用域47
0.4.6 静态函数和静态变量的定义47
0.4.7 范型方法的调用47
0.4.8 Bool类型和字符串类型48
0.4.9 数组48
0.4.10 小结48
0.5 关于预设 Tips48
0.5.1 概要48
0.5.2 改良“小方块”游戏对象48
0.5.3 预设与对象实例50
0.5.4 预设和实例的变更51
0.5.5 小结53
第1章 点击动作游戏——怪物55
1.1 玩法介绍 How to Play56
1.2 简单的操作和爽快感 Concept58
1.2.1 脚本一览58
1.2.2 本章小节60
1.3 无限滚动的背景 Tips60
1.3.1 关联文件60
1.3.2 概要60
1.3.3 背景组件的显示位置61
1.3.4 小结63
1.4 无限滚动的背景的改良 Tips63
1.4.1 关联文件63
1.4.2 概要64
1.4.3 稍作尝试64
1.4.4 背景组件显示位置的改良65
1.4.5 小结67
1.5 怪物出现模式的管理 Tips67
1.5.1 关联文件67
1.5.2 概要67
1.5.3 怪物出现的时间点68
1.5.4 怪物出现模式的变化70
1.5.5 小结74
1.6 武士和怪物的碰撞检测 Tips74
1.6.1 关联文件74
1.6.2 概要74
1.6.3 分别对各个怪物进行碰撞检测的问题75
1.6.4 把怪物编成小组76
1.6.5 小结78
1.7 得分高低的判定 Tips78
1.7.1 概要78
1.7.2 武士的攻击判定78
1.7.3 判断在多近的距离斩杀79
1.7.4 小结82
1.8 使被砍中的怪物向四处飞散 Tips82
1.8.1 概要82
1.8.2 想象一下“圆锥体”82
1.8.3 具体的计算方法84
1.8.4 小结86
第2章 拼图游戏——迷你拼图 87
2.1 玩法介绍 How to Play88
排列拼图碎片,拼出最后的图案!88
2.2 流畅的拖曳操作 Concept90
2.2.1 脚本一览90
2.2.2 本章小节90
2.3 点住碎片的任意位置拖动 Tips92
2.3.1 关联文件92
2.3.2 概要92
2.3.3 透视变换和逆透视变换92
2.3.4 被点击处即为光标的位置92
2.3.5 测试拖曳碎片的中心95
2.3.6 小结96
2.4 打乱拼图碎片 Tips96
2.4.1 关联文件96
2.4.2 概要96
2.4.3 设置拼图碎片的坐标为随机数96
2.4.4 改进策略97
2.4.5 小结102
2.5 游戏对象和组件的关系 Tips102
2.5.1 关联文件102
2.5.2 概要102
2.5.3 虚拟形象(游戏对象)和定制(组件)103
2.5.4 “this”是什么105
2.5.5 GetComponent<>()的缩写106
2.5.6 删除GameObject108
2.5.7 迷你拼图的应用实例108
2.5.8 小结110
第3章 吃豆游戏——地牢吞噬者111
3.1 玩法介绍 How to Play112
3.2 适时进退和逆转的机会 Concept114
3.2.1 脚本一览114
3.2.2 本章小节116
3.3 平滑的网格移动 Tips116
3.3.1 关联文件116
3.3.2 概要116
3.3.3 能够改变方向的时机117
3.3.4 穿过网格的时机117
3.3.5 小结119
3.4 地图数据 Tips120
3.4.1 关联文件120
3.4.2 概要120
3.4.3 文本文件的格式120
3.4.4 扩展编辑器的功能125
3.4.5 小结127
3.5 动画的小技巧 Tips127
3.5.1 关联文件127
3.5.2 概要127
3.5.3 身体各部位的动画128
3.5.4 根据事件播放音效129
3.5.5 小结131
3.6 幽灵的AI Tips131
3.6.1 关联文件131
3.6.2 概要131
3.6.3 跟踪的算法131
3.6.4 埋伏等待型、包围攻击型和随机型135
3.6.5 观察幽灵的行动137
3.6.6 小结138
第4章 3D声音探索游戏——In the Dark Water139
4.1 玩法介绍 How to Play140
4.2 只依靠声音 Concept142
4.2.1 脚本一览142
4.2.2 本章小节144
4.3 仅依靠声音定位 Tips144
4.3.1 概要144
4.3.2 3D声音的特性144
4.3.3 用于实验的项目146
4.3.4 小结147
4.4 3D声音的控制 Tips147
4.4.1 关联文件147
4.4.2 概要147
4.4.3 3D声音的设置147
4.4.4 按一定间隔发出声音148
4.4.5 声音的淡出149
4.4.6 小结150
4.5 潜水艇的操纵 Tips151
4.5.1 关联文件151
4.5.2 概要151
4.5.3 操作方法151
4.5.4 转弯速度的衰减153
4.5.5 小结157
4.6 声纳的制作方法 Tips157
4.6.1 概要157
4.6.2 Prespective和Ortho158
4.6.3 “Dark Water”的声纳摄像机159
4.6.4 摄像机和对象的层160
4.6.5 稍作尝试163
4.6.6 摄像机的视口164
4.6.7 小结165
第5章 节奏游戏——摇滚女孩167
5.1 玩法介绍 How to Play168
5.2 Band-girl的世界 Concept169
5.2.1 脚本一览170
5.2.2 本章小节170
5.3 显示点击时刻的节拍标记 Tips172
5.3.1 关联文件172
5.3.2 概要172
5.3.3 定位单元172
5.3.4 标记的显示175
5.3.5 小结178
5.4 判断是否配合了音乐点击 Tips178
5.4.1 关联文件178
5.4.2 概要178
5.4.3 得分高低的判断178
5.4.4 避免重复判断180
5.4.5 小结185
5.5 演出数据的管理和执行 Tips185
5.5.1 关联文件185
5.5.2 概要185
5.5.3 事件数据的检索185
5.5.4 定位单元和执行单元187
5.5.5 小结191
5.6 其他调整功能 Tips191
5.6.1 关联文件191
5.6.2 概要191
5.6.3 什么是“turn around”192
5.6.4 显示时刻的偏移值192
5.6.5 定位条194
5.6.6 显示标记的行号196
5.6.7 小结196
第6章 全方位滚动射击游戏——噬星者197
6.1 玩法介绍 How to Play198
6.2 功能强大的激光制导 Concept199
6.2.1 脚本一览200
6.2.2 本章小节200
6.3 索敌激光的碰撞检测 Tips202
6.3.1 关联文件202
6.3.2 概要202
6.3.3 索敌激光的碰撞检测202
6.3.4 碰撞网格的生成方法204
6.3.5 确认碰撞网格209
6.3.6 小结209
6.4 不会重复的锁定 Tips210
6.4.1 关联文件210
6.4.2 概要210
6.4.3 锁定的管理210
6.4.4 小结213
6.5 制导激光 Tips213
6.5.1 关联文件213
6.5.2 概要213
6.5.3 根据TrailRenderer生成网格213
6.5.4 制导激光的移动214
6.5.5 稍作尝试218
6.5.6 小结218
6.6 消息窗口 Tips219
6.6.1 关联文件219
6.6.2 概要219
6.6.3 消息队列和显示缓冲区219
6.6.4 小结224
第7章 消除动作解谜游戏——吃月亮225
7.1 玩法介绍 How to Play226
7.2 爽快的连锁和有趣的方块移动 Concept228
7.2.1 脚本一览228
7.2.2 本章小节230
7.3 同色方块相邻与否的判断 Tips230
7.3.1 关联文件230
7.3.2 概要230
7.3.3 连结与连锁230
7.3.4 不停地检测相邻方块231
7.3.5 递归调用233
7.3.6 用于测试连结检测的工程236
7.3.7 防止无限循环检测237
7.3.8 小结238
7.4 方块的初始设置 Tips239
7.4.1 关联文件239
7.4.2 概要239
7.4.3 颜色的选择方法239
7.4.4 随机选取方块的摆放位置242
7.4.5 小结244
7.5 动画的父子构造关系 Tips244
7.5.1 关联文件244
7.5.2 概要244
7.5.3 方块的运动244
7.5.4 动画的父子构造——用于测试的工程247
7.5.5 “吃月亮”中面板的位置和角度的计算252
7.5.6 小结254
7.6 方块的平滑移动 Tips254
7.6.1 关联文件254
7.6.2 概要254
7.6.3 数组的索引和画面上的位置255
7.6.4 桶列方法257
7.6.5 小结260
第8章 跳跃动作游戏——猫跳纸窗261
8.1 玩法介绍 How to Play262
8.2 刺激的跳跃 Concept264
8.2.1 脚本一览264
8.2.2 本章小节266
8.3 角色的状态管理 Tips266
8.3.1 关联文件266
8.3.2 概要266
8.3.3 角色的动作266
8.3.4 状态的迁移267
8.3.5 状态管理的流程268
8.3.6 小结272
8.4 可以控制高度的跳跃 Tips273
8.4.1 关联文件273
8.4.2 概要273
8.4.3 跳跃的物理规律273
8.4.4 自由控制跳跃高度的操作274
8.4.5 小结277
8.5 窗户纸的碰撞检测 Tips277
8.5.1 关联文件277
8.5.2 概要277
8.5.3 “碰撞”的内部实现机制277
8.5.4 窗户对象279
8.5.5 矛盾的碰撞结果279
8.5.6 平滑地穿过格子眼289
8.5.7 小结292
第9章 角色扮演游戏——村子里的传说293
9.1 玩法介绍 How to Play294
9.2 移动简单,人人都是主人公 Concept296
9.2.1 脚本一览296
9.2.2 本章小节298
9.3 事件和Actor Tips298
9.3.1 关联文件298
9.3.2 概要298
9.3.3 事件298
9.3.4 事件的数据结构302
9.3.5 Actor304
9.3.6 事件的执行307
9.3.7 试着执行一个事件310
9.3.8 小结312
9.4 游戏内参数 Tips312
9.4.1 关联文件312
9.4.2 概要312
9.4.3 游戏内参数312
9.4.4 小结316
9.5 事件文件的读取 Tips316
9.5.1 关联文件316
9.5.2 概要316
9.5.3 文件的读取316
9.5.4 小结320
9.6 特殊的事件 Tips321
9.6.1 关联文件321
9.6.2 概要321
9.6.3 选项指令321
9.6.4 宝箱事件323
9.6.5 进入屋子的事件325
9.6.6 小结326
第10章 驾驶游戏——迷踪赛道327
10.1 玩法介绍 How to Play328
10.2 自行创建,即作即用 Concept330
10.2.1 脚本一览330
10.2.2 本章小节332
10.2.3 关于Car Tutorial脚本332
10.3 透视变换和逆透视变换 Tips332
10.3.1 关联文件332
10.3.2 概要332
10.3.3 透视变换333
10.3.4 逆透视变换335
10.3.5 小结337
10.4 多边形网格的生成方法 Tips338
10.4.1 关联文件338
10.4.2 概要338
10.4.3 生成道路的中心线339
10.4.4 多边形的生成方法341
10.4.5 生成道路多边形342
10.4.6 急转弯时的多边形重叠347
10.4.7 多边形生成的测试用工程348
10.4.8 小结348
10.5 模型的变形 Tips348
10.5.1 关联文件348
10.5.2 概要348
10.5.3 变形后顶点的位置坐标349
10.5.4 小结353
10.6 点缀实例 Tips353
10.6.1 关联文件353
10.6.2 概要353
10.6.3 生成基准线354
10.6.4 把树木设置到基准线上358
10.6.5 小结362
后记363
《西门子工业通信网络组态编程与故障诊断》全面介绍了西门子工业通信网络的结构、通信协议、通信服务和通信的组态编程与故障诊断
高性能Linux服务器构建实战-系统安全.故障排查.自动化运维与集群架构 本书特色 畅销书《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》姊妹篇...
《现代化的政治》内容简介:该书对发展中国家的政治现代化道路进行了深入的分析,特别是在实现政治现代化的过程中影响政治变革的一
《信息的社会层面》分析了近年来信息技术对人类社会所产生的冲击,对信息至上论进行了批判性反思。作者认为,信息是植根于社会生
《上海的风花雪月》内容简介:鲜活流动着的上海的风花雪月,如何从历史的尘烟代入当下的情韵?那些被当作城市起居室的咖啡馆数十年
《弓箫缘·石榴记》内容简介:《弓箫缘》初唐年间,筹建北庭都护府的四十万石粮草意外遭劫,陈澌奉李渊之命调查此案。塞外草原一晚
《别让心态毁了你》内容简介:保持什么样的心态就会有什么样的行为方式,而行为方式决定着一个人的生人走向。心态能够成就一个人,
MATLAB图像处理实例详解 本书特色 本书全面、系统地介绍了matlab在数字图像处理中的各种技术及应用。本书对图像处理的基础概念做了必要交代,重点给出了ma...
《这样读透一本书:给孩子的文学精读课》内容简介:上课是人生的展开,阅读是重新发现并真正拥有自己。本书是语文界新生代老师郭初
Learnfromtheaward-winningprogrammingseriesthatinspiredtheElixirlanguage.Hearhowo...
网络科学作为一门新兴的学科越来越引入瞩目。网络科学能帮助读者设计更快、更有弹性的通信网络;能用于调整电力网络、电信网络和
《新少儿小提琴集体课教程 第六册》内容简介:本教程里充满了音乐材料,从一开始到结束,都是大家熟知的民间音调和国外音乐材料,很
ERDAS IMAGINE遥感图像处理教程 本书特色 《ERDAS IMAGINE遥感图像处理教程》由清华大学出版社出版。ERDAS IMAGINE遥感图像处理...
本书以UML为载体,将面向对象的分析设计思想巧妙地融入建模过程中,通过贯穿全书的实例将软件系统开发过程中方方面面的知识有机地
本书收集了作者在试验心理学这一研究领域发表过的五篇最著名的论文以及其他若干论文。每篇旧论文后面都有作者的后记,回顾该文发
《计算机网络(第5版)》自1989年首次出版以来,于1994年、1999年和2003年分别出了修订版。2006年8月本教材通过了教育部的评审,被
MatthewcWilson是一名软件开发顾问,STLSoft库的创建者,他为双月刊C/C++UserscJournal撰写关于将C/C++与其他语言和技术进行...
Java 编程思想(英文版.第3版)附光盘 本书特色 本书赢得了全球程序员的广泛赞誉,即使是*晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示...
管理运筹学和MATLAB软件应用 内容简介 本书从现代管理科学研究和实际应用的角度出发,将运筹学的原理、建模方法、应用事例和MATLAB软件计算有机地结合起来,...
In2009,BlackBerrycontrolledhalfofthesmartphonemarket.Todaythatnumberisonepercent...