本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过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
《用户体验草图设计工具手册(全彩)》是《用户体验草图设计》的配套阅读图书,将指导你如何一步一步地用草图来表达你的设计理念
内容简介:MongoDB是为处理大数据而生的一款面向文档的数据库,由10gen公司开发和维护。本书作者KyleBanker曾在该公司负责MongoD
本书系统地阐述了人因工程学的基础理论、设计方法及应用分析。全书共12章,第1章为人因工程学总论,第2章至第5章为人的形态、生理
《儿童发育迟缓居家康复指导》内容简介:本书从什么是发育迟缓、怎么知道得了发育迟缓、发育迟缓有哪些表现和危害、如何进行居家康
《PyTorch机器学习从入门到实战》内容简介:近年来,基于深度学习的人工智能掀起了一股学习的热潮。本书是使用PyTorch深度学习框架
无师自通AutoCAD 2014中文版机械设计-(附光盘) 本书特色 《无师自通AutoCAD 2014中文版机械设计》以AutoCAD 2014中文版为平台,...
XML基础教程 本书特色 XML是由万维网联盟定义的一种语言,是表示结构化数据的行业标准,使得Internet上的数据相互交流更方便,让文件的内容更加显而易懂。...
这是一本研究如何实现具有Web访问能力的网络机器人的书。该书从Internet编程的基本原理出发,深入浅出、循序渐进地阐述了网络机器
《软件产品质量要求和测试细则》内容简介:计算机软件是计算机应用的核心,其质量的好坏关系到计算机应用系统的成败,软件测评是提
《钢琴套曲·胡桃夹子》内容简介:本书根据前苏联作曲家普罗科菲耶夫与1936年所作交响童话《彼得与狼》(作品67)而改编的钢琴套曲
ThisbookisaboutlearningtoprograminLisp.Althoughwidelyknownastheprincipallanguage...
《古画新品录》内容简介:《古画新品录:一部眼睛的历史》是艺术史学者黄小峰对中国古画的品读。作者选取了流传于世的35件国画作品
计算机应用基础// 本书特色 本书系统全面的介绍了计算机基础知识、windows xp操作系统、word 2003应用、excel 2003应用、powerpo...
《保险这样买就对了》内容简介:本书从实际中常见的保险问题出发,为读者提供解决保险问题的答案,让读者避开买保险过程中的麻烦。
《贴地飞行:中国自主创新发展磁浮交通纪实》内容简介:本书是一部记述中国磁浮交通自主创新的纪实文学作品。该书作者近20多年来一
《崛起的超级智能》内容简介:21世纪以来人工智能、云计算、大数据工业4.0、云机器人、区块链、城市大脑等等新技术不断冲击着人类的
《C语言的科学和艺术》是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。《C语言的科学和艺术》以介绍
《漫画肺康复》内容简介:通过图解的形式给广大呼吸系统疾病患者科普如何治疗疾病,改善生活质量。可以看做一本呼吸系统疾病的患者
《Elastic Stack应用宝典》内容简介:本书系统地介绍了Elastic Stack应用与开发。Elastic Stack由一组处理和分析全文数据的组件构...
《Python数据可视化编程实战》是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法