描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111630838
内容简介
本书主要介绍Unity 2018的使用和游戏开发流程中涉及的各种知识。每一章的结构特别清晰,先综述该章要介绍的内容,然后一步步深入讲解,中间穿插着很多动手做的实践操作,可以让读者加深对某个概念、方法的理解,每章的*后还有一个小测验和一个稍微大一点的实践练习,用于巩固该章的学习内容。阅读每一章平均需要一个小时左右,每一章的内容都构建在前一章的基础之上。书中还穿插了四个实战项目,一来可以加强前面几章的学习,二来在整书阅读完毕之后,可以看到自己的读书成果。
目 录
译者序
前言
第1章 Unity介绍1
1.1 Unity安装1
1.2 熟悉Unity编辑器3
1.2.1 Project对话框4
1.2.2 Unity界面5
1.2.3 Project视图7
1.2.4 Hierarchy视图9
1.2.5 Inspector 视图10
1.2.6 Scene视图11
1.2.7 Game视图12
1.2.8 隆重介绍:工具条13
1.3 在Unity 场景视图中导航14
1.3.1 Hand工具14
1.3.2 Flythrough模式15
1.4 本章小结16
1.5 问答16
1.6 测验16
1.7 练习17
第2章 游戏对象18
2.1 维度和坐标系18
2.1.1 3D中的D18
2.1.2 使用坐标系19
2.1.3 世界坐标系和本地坐标系20
2.2 游戏对象21
2.3 变换22
2.3.1 平移22
2.3.2 旋转23
2.3.3 缩放25
2.3.4 变换的风险25
2.3.5 小工具的位置26
2.3.6 变换和嵌套的对象27
2.4 本章小结28
2.5 问答28
2.6 测验28
2.7 练习29
第3章 模型、材质和纹理30
3.1 模型的基础知识30
3.1.1 内置的3D对象31
3.1.2 导入模型32
3.1.3 模型和Asset Store33
3.2 纹理、着色器和材质35
3.2.1 纹理35
3.2.2 着色器36
3.2.3 材质36
3.2.4 着色器进阶37
3.3 本章小结39
3.4 问答39
3.5 测验40
3.6 练习40
第4章 地形和环境42
4.1 地形的生成42
4.1.1 将地形添加到项目中42
4.1.2 高度图制作43
4.1.3 Unity地形制作工具45
4.2 地形纹理47
4.2.1 导入纹理资源48
4.2.2 纹理化地形49
4.3 生成树和草51
4.3.1 绘制树木51
4.3.2 绘制青草52
4.3.3 地形设置54
4.4 角色控制器56
4.5 本章小结57
4.6 问答57
4.7 测验57
4.8 练习58
第5章 灯光和摄像机59
5.1 灯光59
5.1.1 烘焙灯光和实时灯光60
5.1.2 点光源60
5.1.3 聚光灯62
5.1.4 定向光63
5.1.5 利用对象创建灯光64
5.1.6 光晕64
5.1.7 Cookie65
5.2 摄像机66
5.2.1 摄像机介绍66
5.2.2 多个摄像机67
5.2.3 屏幕分拆和画中画68
5.3 图层70
5.3.1 图层介绍70
5.3.2 使用图层71
5.4 本章小结73
5.5 问答73
5.6 测验74
5.7 练习74
第6章 游戏案例1:Amazing Racer75
6.1 设计75
6.1.1 理念75
6.1.2 规则76
6.1.3 需求76
6.2 创建游戏世界77
6.2.1 制作地形77
6.2.2 添加环境78
6.2.3 雾效79
6.2.4 天空盒79
6.2.5 角色控制器80
6.3 游戏化80
6.3.1 添加游戏控制对象81
6.3.2 添加脚本82
6.3.3 将脚本连在一起84
6.4 游戏测试84
6.5 本章小结86
6.6 问答86
6.7 测验86
6.8 练习87
第7章 脚本(上)88
7.1 脚本88
7.1.1 创建脚本89
7.1.2 添加脚本91
7.1.3 分析脚本的基本内容92
7.1.4 using部分92
7.1.5 类声明部分93
7.1.6 类内容93
7.2 变量94
7.2.1 创建变量94
7.2.2 变量作用域95
7.2.3 公共和私有96
7.3 运算符96
7.3.1 算术运算符96
7.3.2 赋值运算符97
7.3.3 相等运算符98
7.3.4 逻辑运算符98
7.4 条件99
7.4.1 if语句99
7.4.2 if/else语句100
7.4.3 if/else if语句100
7.5 迭代102
7.5.1 while循环102
7.5.2 for循环102
7.6 本章小结103
7.7 问答103
7.8 测验104
7.9 练习104
第8章 脚本(下)105
8.1 方法105
8.1.1 方法简介106
8.1.2 编写方法107
8.1.3 使用方法109
8.2 输入110
8.2.1 输入的基础知识110
8.2.2 输入脚本111
8.2.3 特定键的输入112
8.2.4 鼠标输入113
8.3 访问局部组件114
8.3.1 使用GetComponent115
8.3.2 访问Transform115
8.4 访问其他对象116
8.4.1 寻找其他对象116
8.4.2 修改对象组件118
8.5 本章小结119
8.6 问答119
8.7 测验120
8.8 练习120
第9章 碰撞121
9.1 刚体121
9.2 启用碰撞122
9.2.1 碰撞体122
9.2.2 物理材质124
9.3 触发器125
9.4 光线投射127
9.5 本章小结129
9.6 问答129
9.7 测验130
9.8 练习130
第10章 游戏案例2:Chaos Ball131
10.1 设计131
10.1.1 理念131
10.1.2 规则132
10.1.3 需求132
10.2 竞技场132
10.2.1 创建竞技场133
10.2.2 纹理化133
10.2.3 创建超级弹性材质134
10.2.4 完成竞技场制作135
10.3 游戏实体135
10.3.1 玩家135
10.3.2 混乱球136
10.3.3 彩球138
10.4 控制对象138
10.4.1 球门139
10.4.2 Game Manager140
10.5 优化游戏141
10.6 本章小结142
10.7 问答142
10.8 测验142
10.9 练习143
第11章 预设144
11.1 预设的基础知识144
11.1.1 预设相关的术语145
11.1.2 预设的结构145
11.2 使用预设146
11.2.1 向场景中添加预设实例149
11.2.2 继承149
11.2.3 中断预设之间的关联151
11.2.4 通过代码实例化预设151
11.3 本章小结151
11.4 问答152
11.5 测验152
11.6 练习152
第12章 2D游戏工具154
12.1 2D游戏的基础知识154
12.2 正交投影摄像机156
12.3 添加精灵158
12.3.1 导入精灵158
12.3.2 精灵模式158
12.3.3 导入精灵大小160
12.4 绘制顺序160
12.4.1 排序图层161
12.4.2 层级的顺序162
12.5 2D物理16
前言
第1章 Unity介绍1
1.1 Unity安装1
1.2 熟悉Unity编辑器3
1.2.1 Project对话框4
1.2.2 Unity界面5
1.2.3 Project视图7
1.2.4 Hierarchy视图9
1.2.5 Inspector 视图10
1.2.6 Scene视图11
1.2.7 Game视图12
1.2.8 隆重介绍:工具条13
1.3 在Unity 场景视图中导航14
1.3.1 Hand工具14
1.3.2 Flythrough模式15
1.4 本章小结16
1.5 问答16
1.6 测验16
1.7 练习17
第2章 游戏对象18
2.1 维度和坐标系18
2.1.1 3D中的D18
2.1.2 使用坐标系19
2.1.3 世界坐标系和本地坐标系20
2.2 游戏对象21
2.3 变换22
2.3.1 平移22
2.3.2 旋转23
2.3.3 缩放25
2.3.4 变换的风险25
2.3.5 小工具的位置26
2.3.6 变换和嵌套的对象27
2.4 本章小结28
2.5 问答28
2.6 测验28
2.7 练习29
第3章 模型、材质和纹理30
3.1 模型的基础知识30
3.1.1 内置的3D对象31
3.1.2 导入模型32
3.1.3 模型和Asset Store33
3.2 纹理、着色器和材质35
3.2.1 纹理35
3.2.2 着色器36
3.2.3 材质36
3.2.4 着色器进阶37
3.3 本章小结39
3.4 问答39
3.5 测验40
3.6 练习40
第4章 地形和环境42
4.1 地形的生成42
4.1.1 将地形添加到项目中42
4.1.2 高度图制作43
4.1.3 Unity地形制作工具45
4.2 地形纹理47
4.2.1 导入纹理资源48
4.2.2 纹理化地形49
4.3 生成树和草51
4.3.1 绘制树木51
4.3.2 绘制青草52
4.3.3 地形设置54
4.4 角色控制器56
4.5 本章小结57
4.6 问答57
4.7 测验57
4.8 练习58
第5章 灯光和摄像机59
5.1 灯光59
5.1.1 烘焙灯光和实时灯光60
5.1.2 点光源60
5.1.3 聚光灯62
5.1.4 定向光63
5.1.5 利用对象创建灯光64
5.1.6 光晕64
5.1.7 Cookie65
5.2 摄像机66
5.2.1 摄像机介绍66
5.2.2 多个摄像机67
5.2.3 屏幕分拆和画中画68
5.3 图层70
5.3.1 图层介绍70
5.3.2 使用图层71
5.4 本章小结73
5.5 问答73
5.6 测验74
5.7 练习74
第6章 游戏案例1:Amazing Racer75
6.1 设计75
6.1.1 理念75
6.1.2 规则76
6.1.3 需求76
6.2 创建游戏世界77
6.2.1 制作地形77
6.2.2 添加环境78
6.2.3 雾效79
6.2.4 天空盒79
6.2.5 角色控制器80
6.3 游戏化80
6.3.1 添加游戏控制对象81
6.3.2 添加脚本82
6.3.3 将脚本连在一起84
6.4 游戏测试84
6.5 本章小结86
6.6 问答86
6.7 测验86
6.8 练习87
第7章 脚本(上)88
7.1 脚本88
7.1.1 创建脚本89
7.1.2 添加脚本91
7.1.3 分析脚本的基本内容92
7.1.4 using部分92
7.1.5 类声明部分93
7.1.6 类内容93
7.2 变量94
7.2.1 创建变量94
7.2.2 变量作用域95
7.2.3 公共和私有96
7.3 运算符96
7.3.1 算术运算符96
7.3.2 赋值运算符97
7.3.3 相等运算符98
7.3.4 逻辑运算符98
7.4 条件99
7.4.1 if语句99
7.4.2 if/else语句100
7.4.3 if/else if语句100
7.5 迭代102
7.5.1 while循环102
7.5.2 for循环102
7.6 本章小结103
7.7 问答103
7.8 测验104
7.9 练习104
第8章 脚本(下)105
8.1 方法105
8.1.1 方法简介106
8.1.2 编写方法107
8.1.3 使用方法109
8.2 输入110
8.2.1 输入的基础知识110
8.2.2 输入脚本111
8.2.3 特定键的输入112
8.2.4 鼠标输入113
8.3 访问局部组件114
8.3.1 使用GetComponent115
8.3.2 访问Transform115
8.4 访问其他对象116
8.4.1 寻找其他对象116
8.4.2 修改对象组件118
8.5 本章小结119
8.6 问答119
8.7 测验120
8.8 练习120
第9章 碰撞121
9.1 刚体121
9.2 启用碰撞122
9.2.1 碰撞体122
9.2.2 物理材质124
9.3 触发器125
9.4 光线投射127
9.5 本章小结129
9.6 问答129
9.7 测验130
9.8 练习130
第10章 游戏案例2:Chaos Ball131
10.1 设计131
10.1.1 理念131
10.1.2 规则132
10.1.3 需求132
10.2 竞技场132
10.2.1 创建竞技场133
10.2.2 纹理化133
10.2.3 创建超级弹性材质134
10.2.4 完成竞技场制作135
10.3 游戏实体135
10.3.1 玩家135
10.3.2 混乱球136
10.3.3 彩球138
10.4 控制对象138
10.4.1 球门139
10.4.2 Game Manager140
10.5 优化游戏141
10.6 本章小结142
10.7 问答142
10.8 测验142
10.9 练习143
第11章 预设144
11.1 预设的基础知识144
11.1.1 预设相关的术语145
11.1.2 预设的结构145
11.2 使用预设146
11.2.1 向场景中添加预设实例149
11.2.2 继承149
11.2.3 中断预设之间的关联151
11.2.4 通过代码实例化预设151
11.3 本章小结151
11.4 问答152
11.5 测验152
11.6 练习152
第12章 2D游戏工具154
12.1 2D游戏的基础知识154
12.2 正交投影摄像机156
12.3 添加精灵158
12.3.1 导入精灵158
12.3.2 精灵模式158
12.3.3 导入精灵大小160
12.4 绘制顺序160
12.4.1 排序图层161
12.4.2 层级的顺序162
12.5 2D物理16
前 言
Unity是一款非常强大的工具,它在专业游戏开发者和业余游戏开发者中都非常受欢迎。本书可以引导读者快速入门,尽早使用Unity开始工作(确切地说是24小时左右),同时还涵盖了游戏开发中的基本原则。本书不像某些书籍那样仅介绍特定的几方面内容,或者整本书都在介绍如何制作一款游戏,而是讲解了Unity开发中的各种知识,并包含四个游戏案例。当你读完本书时,不仅能拥有Unity游戏开发引擎所需的理论知识,同时还将完成四款游戏的开发工作,从而获得一个游戏作品集。
本书读者对象
本书适合任何想要学习使用Unity游戏引擎的人阅读。无论你是一名在校学生还是一位有丰富经验的开发者,都可以通过阅读本书学到想要的知识。阅读本书并不需要有游戏开发经验或者基础知识,所以如果这是你第一次涉足游戏开发领域也不用紧张。
本书的组织结构
根据Sams Teach Yourself系列丛书的原则,本书分为24章,阅读每一章大概要花一小时。各章内容介绍如下:
第1章—本章主要让你熟悉Unity,了解Unity游戏引擎的各个部分。
第2章—本章教你如何使用Unity游戏引擎中最基本的内容“游戏对象”(game object),同时也将教你坐标系统和基本的变换。
第3章—在本章中,你将学习在材质上应用着色器和纹理时,如何使用Unity的图形资源管线,同时也会学习如何将这些材质应用于各种3D对象。
第4章—在本章中,你将学习如何使用Unity的地形系统打造游戏世界。为了创造出独一无二且令人惊叹的世界,不要怕辛苦。
第5章—本章将深入剖析灯光和摄像机。
第6章—现在我们开始做第一款游戏了!在本章中,你将学习制作一款名为Amazing Racer的游戏,这款游戏会用到前面几章学到的所有知识。
第7章—在本章中,你将开始学习Unity的脚本系统。如果你之前从来没有编程经验,也不要着急,本章的节奏很慢,足以让你打好基础。
第8章—本章将继续沿着第7章的内容深入学习一些脚本的进阶内容。
第9章—本章将带你领略现代视频游戏中常见的各种碰撞交互。你将会学习物理相关的知识,同时也会学习触发器碰撞。你还将学习如何创建物理材质,并将它们应用到你的游戏对象上。
第10章—是时候开始制作第二款游戏了!在本章中,你将学习制作一款名为Chaos Ball的游戏。游戏的名字就已经点明了游戏内容,游戏制作过程中将会使用大量的碰撞和物理材质,同时还将加入要求各种快速反应的策略。
第11章—预设将会让你创建重复使用的游戏对象。在本章中你将学习创建和修改预设。
第12章—在本章中,你将学习Unity用于创建2D游戏的强大工具,包括如何使用精灵和Box2D物理引擎。
第13章—在本章中,你将学习如何构建复杂的2D环境,而不仅仅是由简单的精灵瓦片构成的环境。
第14章—在本章中,你将学习如何使用Unity的强大用户界面系统,以及如何为游戏创建一个菜单。
第15章—现在开始制作第三个游戏!在本章中,你将学习制作Captain Blaster,这是一款复古风的太空射击游戏。
第16章—是时候学习粒子效果了。在本章中,你将体验Unity的粒子系统,使用粒子系统创建酷炫的效果并将它们应用到游戏当中。
第17章—在本章中,你将学习动画和Unity的动画系统,学习制作2D和3D动画以及强大的动画工具。
第18章—本章主要介绍Unity的Mecanim动画系统,你将学习如何使用Mecanim动画系统中强大的状态机以及如何混合动画。
第19章—在本章中,你将学习如何使用时间线系统制作动画序列。
第20章—本章开始制作第四款游戏,名为Gauntlet Runner。本游戏将使用一种新的方式来滚动背景,并展示如何实现高级游戏功能。
第21章—本章将学习如何在游戏中添加环境音效。你将学习如何使用2D或3D音效,并了解它们之间的差异。
第22章—本章将介绍如何为移动设备构建游戏。你也会学习使用移动端内置的加速器和多点触屏显示器。
第23章—现在我们要开始学习如何添加多场景并在多场景之间传递数据,同时也将学习部署游戏的设置。
第24章—现在,你将回顾学习Unity的整个过程。本章将会告诉你都学到了什么,并为你接下来的学习路线指明方向。
希望你能喜欢本书,并从中学到有用的知识。希望你在Unity游戏开发的旅途中一切顺利。
随书资源
从链接http://fixbyproximity.com/Downloads/UnityBook.html中,你将获得本书用到的所有代码(这些代码都带有作者的注释),以及所有第三方艺术资源(纹理、字体和模型)和第三方的音频资源。
致谢
特别感谢每一位帮助我撰写本书的人。
首先感谢Kara让我坚持下去。我不知道当本书面世的时候,我们会谈论些什么。但无论说什么,你应该都是对的。爱你,宝贝。
Link和Luke,我们应该让妈妈轻松一些,她已经快崩溃了。
感谢我的父母。现在,我也是父亲了。当我成为父亲之后,才理解你们为我付出了多少心血,谢谢你们将我抚养成人。
感谢Angelina Jolie,由于你在《Hackers》(1995)这部精彩的电影中扮演的角色,让我决定学习使用计算机。你低估了这个角色对十岁孩子的影响,你很出色!
感谢牛肉干的发明者,你的名字在历史长河中可能会慢慢被遗忘,但是你的产品却永远深入人心。我喜欢牛肉干,谢谢。
感谢Michael Wu,你不仅同意作为本书的技术编辑,而且还是我们的播客“Mikes’ Video Game Podcast”中的Mike。
感谢Laura说服我撰写本书。同时,也要感谢她在GDC的时候帮我买午餐,这对我撰写本书起到了至关重要的作用。
最后,感谢Unity Technologies开发了Unity游戏引擎,否则本书就不会面世。
本书读者对象
本书适合任何想要学习使用Unity游戏引擎的人阅读。无论你是一名在校学生还是一位有丰富经验的开发者,都可以通过阅读本书学到想要的知识。阅读本书并不需要有游戏开发经验或者基础知识,所以如果这是你第一次涉足游戏开发领域也不用紧张。
本书的组织结构
根据Sams Teach Yourself系列丛书的原则,本书分为24章,阅读每一章大概要花一小时。各章内容介绍如下:
第1章—本章主要让你熟悉Unity,了解Unity游戏引擎的各个部分。
第2章—本章教你如何使用Unity游戏引擎中最基本的内容“游戏对象”(game object),同时也将教你坐标系统和基本的变换。
第3章—在本章中,你将学习在材质上应用着色器和纹理时,如何使用Unity的图形资源管线,同时也会学习如何将这些材质应用于各种3D对象。
第4章—在本章中,你将学习如何使用Unity的地形系统打造游戏世界。为了创造出独一无二且令人惊叹的世界,不要怕辛苦。
第5章—本章将深入剖析灯光和摄像机。
第6章—现在我们开始做第一款游戏了!在本章中,你将学习制作一款名为Amazing Racer的游戏,这款游戏会用到前面几章学到的所有知识。
第7章—在本章中,你将开始学习Unity的脚本系统。如果你之前从来没有编程经验,也不要着急,本章的节奏很慢,足以让你打好基础。
第8章—本章将继续沿着第7章的内容深入学习一些脚本的进阶内容。
第9章—本章将带你领略现代视频游戏中常见的各种碰撞交互。你将会学习物理相关的知识,同时也会学习触发器碰撞。你还将学习如何创建物理材质,并将它们应用到你的游戏对象上。
第10章—是时候开始制作第二款游戏了!在本章中,你将学习制作一款名为Chaos Ball的游戏。游戏的名字就已经点明了游戏内容,游戏制作过程中将会使用大量的碰撞和物理材质,同时还将加入要求各种快速反应的策略。
第11章—预设将会让你创建重复使用的游戏对象。在本章中你将学习创建和修改预设。
第12章—在本章中,你将学习Unity用于创建2D游戏的强大工具,包括如何使用精灵和Box2D物理引擎。
第13章—在本章中,你将学习如何构建复杂的2D环境,而不仅仅是由简单的精灵瓦片构成的环境。
第14章—在本章中,你将学习如何使用Unity的强大用户界面系统,以及如何为游戏创建一个菜单。
第15章—现在开始制作第三个游戏!在本章中,你将学习制作Captain Blaster,这是一款复古风的太空射击游戏。
第16章—是时候学习粒子效果了。在本章中,你将体验Unity的粒子系统,使用粒子系统创建酷炫的效果并将它们应用到游戏当中。
第17章—在本章中,你将学习动画和Unity的动画系统,学习制作2D和3D动画以及强大的动画工具。
第18章—本章主要介绍Unity的Mecanim动画系统,你将学习如何使用Mecanim动画系统中强大的状态机以及如何混合动画。
第19章—在本章中,你将学习如何使用时间线系统制作动画序列。
第20章—本章开始制作第四款游戏,名为Gauntlet Runner。本游戏将使用一种新的方式来滚动背景,并展示如何实现高级游戏功能。
第21章—本章将学习如何在游戏中添加环境音效。你将学习如何使用2D或3D音效,并了解它们之间的差异。
第22章—本章将介绍如何为移动设备构建游戏。你也会学习使用移动端内置的加速器和多点触屏显示器。
第23章—现在我们要开始学习如何添加多场景并在多场景之间传递数据,同时也将学习部署游戏的设置。
第24章—现在,你将回顾学习Unity的整个过程。本章将会告诉你都学到了什么,并为你接下来的学习路线指明方向。
希望你能喜欢本书,并从中学到有用的知识。希望你在Unity游戏开发的旅途中一切顺利。
随书资源
从链接http://fixbyproximity.com/Downloads/UnityBook.html中,你将获得本书用到的所有代码(这些代码都带有作者的注释),以及所有第三方艺术资源(纹理、字体和模型)和第三方的音频资源。
致谢
特别感谢每一位帮助我撰写本书的人。
首先感谢Kara让我坚持下去。我不知道当本书面世的时候,我们会谈论些什么。但无论说什么,你应该都是对的。爱你,宝贝。
Link和Luke,我们应该让妈妈轻松一些,她已经快崩溃了。
感谢我的父母。现在,我也是父亲了。当我成为父亲之后,才理解你们为我付出了多少心血,谢谢你们将我抚养成人。
感谢Angelina Jolie,由于你在《Hackers》(1995)这部精彩的电影中扮演的角色,让我决定学习使用计算机。你低估了这个角色对十岁孩子的影响,你很出色!
感谢牛肉干的发明者,你的名字在历史长河中可能会慢慢被遗忘,但是你的产品却永远深入人心。我喜欢牛肉干,谢谢。
感谢Michael Wu,你不仅同意作为本书的技术编辑,而且还是我们的播客“Mikes’ Video Game Podcast”中的Mike。
感谢Laura说服我撰写本书。同时,也要感谢她在GDC的时候帮我买午餐,这对我撰写本书起到了至关重要的作用。
最后,感谢Unity Technologies开发了Unity游戏引擎,否则本书就不会面世。
评论
还没有评论。