本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过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
电脑故障诊断与排除十日速成-含1DVD 本书特色 电脑入门九日速成电脑上网技巧十日速成 电脑组装与维护八日速成电脑应用技巧九日速成网上开店七日速成 常用工具...
《守望卡瓦格博》内容简介:2006年,新浪博客开通的第二年,杨旭东注册了“留给自己一份柔软的心情”的个人旅行博客。十余年来,一
《高频电子线路(第4版)》全书共13章,即:绪论,信号分析,选频网络,高频小信号放大器,非线性电路、时变参量电路和变频器,高频
Go并发编程实战-第2版 本书特色 本书首先介绍了Go语言的优势特性、安装设置方法、工程结构、标准命令和工具、语法基础、数据类型以及流程控制方法,接着阐述了与多...
《美国人的性格》内容简介:本书是社会学家费孝通先生于20世纪40年代在美国读书和考察及上世纪80年代重访美国时的观感笔记,包括《
《大数据与劳动力市场研究》内容简介:利用网络大数据开展就业市场的分析和预测,为政府提供决策咨询,其重要性无论如何强调,应当
本书不仅描述了IMS域的体系结构,而且通过实例深入浅出地对IMS的关键概念、主要过程以及典型业务进行了剖析。本书内容远远超越了
《5G+智慧医疗:赋能医疗产业数字化转型》内容简介:本书立足于当前我国智慧医疗产业的发展现状与前沿趋势,梳理智慧医疗发展历程和
C++程序设计教程 内容简介 本教材是为高等学校计算机专业、电类和信息类专业学生学习高级语言程序设计而编写的。本教材根据高级语言程序设计的基本体系编写,结合结构...
本书由浅入深、循序渐进地介绍了Windows驱动程序的开发方法与调试技巧。本书共分23章,内容涵盖了Windows操作系统的基本原理、NT
《Oracle 18c 必须掌握的新特性:管理与实战》内容简介:在Oracle 12c版本之前,数据库版本的迭代中基本架构都没有非常明显的变化,
计算机电路基础 内容简介 本书由计算机电路基础知识、模拟电路和脉冲数字电路等部分组成。内容包括:半导体器件、放大器、振荡器、逻辑门电路、组合逻辑电路、时序逻辑电...
《现代化的政治》内容简介:该书对发展中国家的政治现代化道路进行了深入的分析,特别是在实现政治现代化的过程中影响政治变革的一
数据时代已经到来,但数据分析、数据挖掘人才却十分短缺。由于“大数据”对每个领域的决定性影响, 相对于经验和直觉,在商业、
《人间草木:汪曾祺写北京》内容简介:本书主要收录了作者在北京时创作的作品。他墨写出了草木山川、花鸟虫鱼的人味,写出了乡情民
《无懈可击的Web设计(2):CSS深入应用》是一本介绍CSS应用技巧的书,主要讲解了在Web页面设计和制作过程中的各种细节的处理方法。
《游戏动漫人体结构与动态:实例训练手册(常用动作)》内容简介:本书针对人体插画初学者在入门时遇到的难题而编写。本书是一本具
Ifyouknowhowtoprogram,youhavetheskillstoturndataintoknowledgeusingthetoolsofprob...
“这本深思熟虑的论文集(《安全之美》)帮助读者摆脱安全领域闪烁着欺骗光芒的心理恐惧,转而欣赏安全的微妙美感。本书描述了安
《电子封装技术设备操作手册》内容简介:本书以电子封装工艺为主线,按照电子封装工艺的前道封装与后道封装,分成了半导体芯片封装