本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过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
《纠错编码的艺术(第2版)》讲论了所有的关键主题,包括Reed-Solomon码、Viterbi译码、软输出译码算法、MAP、log-MAP和MAX-log-M...
《大数据实践之路》内容简介:《大数据实践之路:数据中台+数据分析+产品应用》共13章,汇集了7位作者(来自多个大型互联网企业)的
《精通HTML5+CSS3+JavaScript网页设计(视频教学版)(第2版)》内容简介:HTML5、CSS3和JavaScript技术是网页设计的精髓,本书...
《国际商务》内容简介:本书立足于中国对外开放的大背景,本着为国家培养千千万万胸怀祖国、放眼全球、经营世界的国际商务人才的理
《pcDuino开发实战》内容简介:本书共分为四篇,由浅入深地讲解pcDuino的开发使用。第一篇为基础篇,包括第1~3章,首先介绍了Ardui
大数据互联网大规模数据挖掘与分布式处理 本书特色 大数据时代的及时雨全球著名数据库技术专家*新力作理论与实际算法实现并重大数据互联网大规模数据挖掘与分布式处理 ...
本书详细介绍了广泛的Web技术,包括:HTTP、XHTML、CSS、JavaScript、DOM、Javaservlet、XML及相关技术、JSP、SOAP、W...
《HarmonyOS应用开发》内容简介:本书内容基于HarmonyOS 2.0 Beta版。从技术层面上讲,HarmonyOS目前可以使用Java和JavaSc...
《银河系边缘的小失常》内容简介:继《突然,响起一阵敲门声》之后,短篇小说大师埃特加·凯雷特创作的全新故事集。没有人能像埃特
《互联网金融弄潮儿——第三方支付》内容简介:本书从市场的角度,通过认真的调查与分析,以实际案例为导向,由浅入深,分板块串联
NLPdescribesinsimpletermswhatthesepeopledodifferentlyandenablesyoutolearnthesepa...
Consideredoneofthemostintricatewritingsystemsinuse,Chinesecharactersholdapresenc...
《左宗棠(中华先贤人物故事汇)》内容简介:左宗棠(1812—1885),字季高,一字朴存,号湘上农人,湖南湘阴人。他一生参与镇压太
《HBase原理与实践》内容简介:本书系统介绍HBase基本原理与运行机制,融入了作者多年的开发经验与实践技巧。主要内容包括:HBase的
本书揭示了超宽带无线电技术的神秘性,提供了简单的高水平的UWB概念性讨论,进而给出了科学、数学和工程式细节的解释,并从UWB的
Almosteveryanimalwillatsometimeorotherbecomethehomeofaparasite.Notonlyareparasit...
《中国传统文化》内容简介:《中国传统文化》为云南省普通高等学校“十二五”规划教材,包括“绪论”和六章内容。第一章“天:天文
《Nginx实战》内容简介:本书主要讲解了Nginx在反向代理和应用开发中的作用,阅读本书可以了解Nginx在互联网开发中扮演的多个角色,
系统与数据恢复技术 本书特色 本教材主要针对目前主流操作系统Windows及其文件系统下的数据恢复方法、技术和编程实现,重点介绍Windows系统环境下的系统和...
21天学通C语言(第6版)(附光盘) 内容简介 本书译自《Teach Yourself C in 21 Days》第6版,该书的前五版都登上了畅销书排行榜,是初...