好书推荐 好书速递 排行榜 读书文摘

Unity游戏设计与实现

Unity游戏设计与实现
作者:[日]加藤政树
译者:罗水东
副标题:南梦宫一线程序员的开发实例
出版社:人民邮电出版社
出版年:2015-02
ISBN:9787115384249
行业:计算机
浏览数:8

内容简介

本书出自日本知名游戏公司万代南梦宫的资深开发人员之手,面向初级游戏开发人员,通过10个不同类型的游戏实例,展示了真正的游戏设计和实现过程。本书的重点并不在于讲解Unity的各种功能细节,而在于核心玩法的设计和实现思路。每个实例都从一个idea 开始,不断丰富,自然而然地推出各种概念,引导读者思考必要的数据结构和编程方法。掌握了这些思路,即便换成另外一种引擎,也可以轻松地开发出同类型的游戏。

本书适合具有一定Unity 和C# 基础的游戏开发者阅读。

......(更多)

作者简介

作者简介:

加藤政树

就职于日本著名的游戏制造商南梦宫。除产品开发外,还负责公司内部中间件的开发和技术研究、高端项目支持、新游戏的研发等工作。近年来也开始致力于NPR(Non Photorealistic Rendering)的研究。代表作品有Fitness Party、Muscle March。

译者简介:

罗水东

资深游戏开发工程师。10年软件和游戏开发经验,期间5年时间在日本工作。热爱技术,乐于分享心得。目前主要关注领域为Unity3D游戏开发技术、游戏设计模式。

......(更多)

目录

第0章 Unity概要  1

0.1 Unity基础 Concept  2

0.1.1 脚本一览  2

0.1.2 本章小节  2

0.1.3 本章开发的小游戏  2

0.2 入门教程(上)——创建项目 Tips  3

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 入门教程(下)——让游戏更有趣 Tips  21

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的对比 Tips  44

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 关于预设 Tips  48

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 Play  56

1.2 简单的操作和爽快感 Concept  58

1.2.1 脚本一览  58

1.2.2 本章小节  60

1.3 无限滚动的背景 Tips  60

1.3.1 关联文件  60

1.3.2 概要  60

1.3.3 背景组件的显示位置  61

1.3.4 小结  63

1.4 无限滚动的背景的改良 Tips  63

1.4.1 关联文件  63

1.4.2 概要  64

1.4.3 稍作尝试  64

1.4.4 背景组件显示位置的改良  65

1.4.5 小结  67

1.5 怪物出现模式的管理 Tips  67

1.5.1 关联文件  67

1.5.2 概要  67

1.5.3 怪物出现的时间点  68

1.5.4 怪物出现模式的变化  70

1.5.5 小结  74

1.6 武士和怪物的碰撞检测 Tips  74

1.6.1 关联文件  74

1.6.2 概要  74

1.6.3 分别对各个怪物进行碰撞检测的问题  75

1.6.4 把怪物编成小组  76

1.6.5 小结  78

1.7 得分高低的判定 Tips  78

1.7.1 概要  78

1.7.2 武士的攻击判定  78

1.7.3 判断在多近的距离斩杀  79

1.7.4 小结  82

1.8 使被砍中的怪物向四处飞散 Tips  82

1.8.1 概要  82

1.8.2 想象一下“圆锥体”  82

1.8.3 具体的计算方法  84

1.8.4 小结  86

第2章 拼图游戏——迷你拼图  87

2.1 玩法介绍 How to Play  88

排列拼图碎片,拼出最后的图案!  88

2.2 流畅的拖曳操作 Concept  90

2.2.1 脚本一览  90

2.2.2 本章小节  90

2.3 点住碎片的任意位置拖动 Tips  92

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 打乱拼图碎片 Tips  96

2.4.1 关联文件  96

2.4.2 概要  96

2.4.3 设置拼图碎片的坐标为随机数  96

2.4.4 改进策略  97

2.4.5 小结  102

2.5 游戏对象和组件的关系 Tips  102

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 删除GameObject  108

2.5.7 迷你拼图的应用实例  108

2.5.8 小结  110

第3章 吃豆游戏——地牢吞噬者  111

3.1 玩法介绍 How to Play  112

3.2 适时进退和逆转的机会 Concept  114

3.2.1 脚本一览  114

3.2.2 本章小节  116

3.3 平滑的网格移动 Tips  116

3.3.1 关联文件  116

3.3.2 概要  116

3.3.3 能够改变方向的时机  117

3.3.4 穿过网格的时机  117

3.3.5 小结  119

3.4 地图数据 Tips  120

3.4.1 关联文件  120

3.4.2 概要  120

3.4.3 文本文件的格式  120

3.4.4 扩展编辑器的功能  125

3.4.5 小结  127

3.5 动画的小技巧 Tips  127

3.5.1 关联文件  127

3.5.2 概要  127

3.5.3 身体各部位的动画  128

3.5.4 根据事件播放音效  129

3.5.5 小结  131

3.6 幽灵的AI Tips  131

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 Water  139

4.1 玩法介绍 How to Play  140

4.2 只依靠声音 Concept  142

4.2.1 脚本一览  142

4.2.2 本章小节  144

4.3 仅依靠声音定位 Tips  144

4.3.1 概要  144

4.3.2 3D声音的特性  144

4.3.3 用于实验的项目  146

4.3.4 小结  147

4.4 3D声音的控制 Tips  147

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 潜水艇的操纵 Tips  151

4.5.1 关联文件  151

4.5.2 概要  151

4.5.3 操作方法  151

4.5.4 转弯速度的衰减  153

4.5.5 小结  157

4.6 声纳的制作方法 Tips  157

4.6.1 概要  157

4.6.2 Prespective和Ortho  158

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 Play  168

5.2 Band-girl的世界 Concept  169

5.2.1 脚本一览  170

5.2.2 本章小节  170

5.3 显示点击时刻的节拍标记 Tips  172

5.3.1 关联文件  172

5.3.2 概要  172

5.3.3 定位单元  172

5.3.4 标记的显示  175

5.3.5 小结  178

5.4 判断是否配合了音乐点击 Tips  178

5.4.1 关联文件  178

5.4.2 概要  178

5.4.3 得分高低的判断  178

5.4.4 避免重复判断  180

5.4.5 小结  185

5.5 演出数据的管理和执行 Tips  185

5.5.1 关联文件  185

5.5.2 概要  185

5.5.3 事件数据的检索  185

5.5.4 定位单元和执行单元  187

5.5.5 小结  191

5.6 其他调整功能 Tips  191

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 Play  198

6.2 功能强大的激光制导 Concept  199

6.2.1 脚本一览  200

6.2.2 本章小节  200

6.3 索敌激光的碰撞检测 Tips  202

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 不会重复的锁定 Tips  210

6.4.1 关联文件  210

6.4.2 概要  210

6.4.3 锁定的管理  210

6.4.4 小结  213

6.5 制导激光 Tips  213

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 消息窗口 Tips  219

6.6.1 关联文件  219

6.6.2 概要  219

6.6.3 消息队列和显示缓冲区  219

6.6.4 小结  224

第7章 消除动作解谜游戏——吃月亮  225

7.1 玩法介绍 How to Play  226

7.2 爽快的连锁和有趣的方块移动 Concept  228

7.2.1 脚本一览  228

7.2.2 本章小节  230

7.3 同色方块相邻与否的判断 Tips  230

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 方块的初始设置 Tips  239

7.4.1 关联文件  239

7.4.2 概要  239

7.4.3 颜色的选择方法  239

7.4.4 随机选取方块的摆放位置  242

7.4.5 小结  244

7.5 动画的父子构造关系 Tips  244

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 方块的平滑移动 Tips  254

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 Play  262

8.2 刺激的跳跃 Concept  264

8.2.1 脚本一览  264

8.2.2 本章小节  266

8.3 角色的状态管理 Tips  266

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 可以控制高度的跳跃 Tips  273

8.4.1 关联文件  273

8.4.2 概要  273

8.4.3 跳跃的物理规律  273

8.4.4 自由控制跳跃高度的操作  274

8.4.5 小结  277

8.5 窗户纸的碰撞检测 Tips  277

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 Play  294

9.2 移动简单,人人都是主人公 Concept  296

9.2.1 脚本一览  296

9.2.2 本章小节  298

9.3 事件和Actor Tips  298

9.3.1 关联文件  298

9.3.2 概要  298

9.3.3 事件  298

9.3.4 事件的数据结构  302

9.3.5 Actor  304

9.3.6 事件的执行  307

9.3.7 试着执行一个事件  310

9.3.8 小结  312

9.4 游戏内参数 Tips  312

9.4.1 关联文件  312

9.4.2 概要  312

9.4.3 游戏内参数  312

9.4.4 小结  316

9.5 事件文件的读取 Tips  316

9.5.1 关联文件  316

9.5.2 概要  316

9.5.3 文件的读取  316

9.5.4 小结  320

9.6 特殊的事件 Tips  321

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 Play  328

10.2 自行创建,即作即用 Concept  330

10.2.1 脚本一览  330

10.2.2 本章小节  332

10.2.3 关于Car Tutorial脚本  332

10.3 透视变换和逆透视变换 Tips  332

10.3.1 关联文件  332

10.3.2 概要  332

10.3.3 透视变换  333

10.3.4 逆透视变换  335

10.3.5 小结  337

10.4 多边形网格的生成方法 Tips  338

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 模型的变形 Tips  348

10.5.1 关联文件  348

10.5.2 概要  348

10.5.3 变形后顶点的位置坐标  349

10.5.4 小结  353

10.6 点缀实例 Tips  353

10.6.1 关联文件  353

10.6.2 概要  353

10.6.3 生成基准线  354

10.6.4 把树木设置到基准线上  358

10.6.5 小结  362

后记  363

......(更多)

读书文摘

单纯的游戏对象什么也做不了,组件也不过是一个个工具。工具毫无规章地使用,是做不出什么东西来的。只有将作为设计图的“资源”和作为工具的“组件”以及使用工具的“游戏对象”这三者搭配在一起工作,才能将3D模型显示在画面上。

......(更多)

猜你喜欢

点击查看