本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过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
《MATLAB小波分析超级学习手册》内容简介:本书对小波分析在MATLAB中的应用进行了详细的介绍,全书以小波为主题展开叙述,不仅对小
网站运维工作,一向以内容繁杂、覆盖面广著称。《网站运维技术与实践》选取日常工作涉及的监测调优、日志分析、集群规划、自动化
本书为美国经典教材,介绍真实工作场景中,尤其是与科技相关的领域中的写作交流方法与策略。此书除讲述科技交流写作过程、结构方
《混合动力汽车拆装与检测》内容简介:本书采用基于工作过程的方法开发,以典型工作任务为载体组织内容,主要包括混合动力汽车认知
《全国通信专业技术人员职业水平考试参考用书:通信专业综合能力(中级)》依据《全国通信专业技术人员职业水平考试大纲》要求编写。
信息系统项目管理师教程-(第3版) 本书特色 本书是全国计算机技术与软件专业技术资格(水平)考试办公室组织编写的考试指定用书,本书根据2017年出版的《信息系统...
Thepurposeofthisbookistohelpyouunderstandhowtoprogramshared-memoryparallelmachin...
《中国历史人物(英文版)》内容简介:了解一个国家,必先了解此国的人。在本书中,你将一览中国历史长河,认识曾在哲学、艺术、文
《犹太人智慧书》内容简介:本书对《塔木德》《财箴》和《诺未门》中浩如烟海的智慧进行了归纳和总结,将其分为四个类别:经商智慧
《Linux网络管理与配置》内容简介:本书以RedHat公司的Linux RHEL Server6.4操作系统为平台,全面、系统地介绍了Linux操作系统的基
本书带领读者认识和学习7种影响现代Web应用并改娈了Web开发方式的框架,以期给Web开发者带来启发和思考。本书延续了同系列的畅销
数控编程技术228例 本书特色 本书对228个数控机床编程与造型实例进行了分析和讲解,每个编程实例的主要内容有零件分析、工艺分析、工件坐标系的设定、编制加工程序...
《Spring实战开发》内容简介:Spring是当今Java开发行业之中的主流技术开源框架,利用Spring框架中IOC&DI与AOP实现机制可以轻松地实
《作文周计划:五年级创意写作训练(全2册)》内容简介:本书从叙事、描写、议论、应用、想象五个方面选取适合小学五年级学生的创意
本书从概念、体系架构、机制策略、性能及其评估标准、用户体验管理及业务性能优化等各个方面对不同的蜂窝技术(GPRS,ECDMA和CDM
《中医就有这么牛:全国名老中医蓝青强验案集》内容简介:蓝青强先生系广西中医药大学主任医师、教授,博士研究生导师,桂派中医大
《Qtfor Python PySide6GUI界面开发详解与实例》内容简介:本书详细介绍了PySide6提供的各种可视化类进行可视化界面编程。本书对各
《小创客学光环板》内容简介:本书主要介绍利用小巧的光环板及功能强大的慧编程平台实现智能可穿戴设备作品的设计与创作。在内容上
小型纸品的设计,使平面设计师找到了可以真正发挥创造才能的机会。本书提供的近千幅图例,很多是在不需要满足客户要求的情况下,
“只要一提到彼得·德鲁克的名字,在企业的丛林中就会有无数双耳朵竖起来听。”这里汇集了彼得·德鲁克和其他39位世界顶级大师的