内容简介 · · · · · ·
本书通过实例详细介绍了如何使用Unity 进行游戏开发,书中先简要介绍了Unity 环境搭建、编辑器和GUI 游戏界面相关的知识,接着介绍了如何使用C# 和JavaScript 构建游戏脚本,添加树、草、石头等模型以及键盘事件、鼠标事件和3D 模型动画相关的内容,然后介绍了持久化数据、音频与视频播放等内容,最后以一款第一人称射击类游戏为原型,向读者详细介绍游戏制作的整个过程。
本书适合具备一些JavaScript 与C# 语言基础,并且想快速入门Unity 3D 游戏开发的人员阅读。
作者简介 · · · · · ·
作者简介:
宣雨松,网名雨松MOMO。首款入驻美国苹果店数字体育产品GolfSense Unity3D主程,CSDN博客专家,51CTO博客之星,51CTO移动开发论坛版主,Unity圣典开发论坛版主,5年以上移动游戏与软件开发经验。曾经领导与参与的游戏项目包括:GolfSense、新少林寺、天降少女、游龙戏凤西门庆等。个人独立博客地址http://www.xuanyusong.com/。
目录 · · · · · ·
第1章 基础知识 1
1.1 Unity简介 1
1.2 下载与安装 2
1.3 游戏界面对比 8
1.4 购买许可证 10
1.5 打包与发布 13
1.6 本章小结 16
第2章 编辑器的结构 17
2.1 游戏工程 17
2.1.1 创建工程 17
2.1.2 打开工程 19
2.2 Project视图 20
2.3 Hierarchy视图 23
2.4 Inspector视图 24
2.4.1 简介 24
2.4.2 平台设定 25
2.5 Scene视图 26
2.5.1 视图介绍 27
2.5.2 移动视图 28
2.5.3 场景工具 32
2.5.4 Scene视图控制条 33
2.6 Game视图 35
2.6.1 运行游戏 35
2.6.2 Game视图控制条 35
2.6.3 导出与导入 38
2.7 第一个游戏实例(拓展训练) 38
2.8 本章小结 42
第3章 GUI游戏界面 43
3.1 GUI高级控件 43
3.1.1 Label控件 43
3.1.2 Button控件 46
3.1.3 TextField控件 48
3.1.4 ToolBar控件 50
3.1.5 Slider控件 52
3.1.6 ScrollView控件 53
3.1.7 群组视图 55
3.1.8 窗口 56
3.1.9 GUI Skin 58
3.1.10 自定义风格组件 62
3.2 GUILayout游戏界面布局 64
3.2.1 GUI与GUILayout的区别 64
3.2.2 GUILayoutOption界面布局
设置 66
3.2.3 线性布局 67
3.2.4 控件偏移 68
3.2.5 对齐方式 69
3.2.6 实例——添加与关闭窗口 71
3.2.7 设置字体 73
3.2.8 显示中文 75
3.3 2D贴图与帧动画 77
3.3.1 绘制贴图 77
3.3.2 绘制动画 79
3.3.3 实例——人物移动 81
3.3.4 实例——用Unity开发2D
游戏 83
3.4 游戏实例——游戏主菜单 88
3.5 本章小结 90
第4章 Unity游戏脚本 91
4.1 MonoDevelop脚本编辑器 91
4.1.1 编辑器简介 91
4.1.2 调试 92
4.2 Unity脚本的生命周期 95
4.3 利用脚本来操作游戏对象 95
4.3.1 创建游戏对象 96
4.3.2 获取游戏对象 97
4.3.3 添加组件与修改组件 102
4.3.4 发送广播与消息 104
4.3.5 克隆游戏对象 105
4.3.6 脚本组件 106
4.4 用脚本来控制对象的变换 108
4.4.1 改变游戏对象的位置 109
4.4.2 旋转游戏对象 110
4.4.3 平移游戏对象 112
4.4.4 缩放游戏对象 113
4.5 用C#编写脚本 115
4.5.1 继承MonoBehaviour类 115
4.5.2 声明变量 116
4.5.3 调用方法 116
4.5.4 JavaScript与C#脚本之间的
通信 119
4.6 工具类 122
4.6.1 时间 122
4.6.2 等待 123
4.6.3 随机数 124
4.6.4 数学 124
4.6.5 四元数 125
4.7 游戏实例——小地图的制作 126
4.8 本章小结 130
第5章 游戏元素 131
5.1 游戏地形 131
5.1.1 创建地形 131
5.1.2 地形参数 132
5.1.3 编辑地形 133
5.1.4 地形贴图 136
5.2 地形元素 140
5.2.1 树元素 140
5.2.2 草与网格元素 142
5.2.3 其他设置 144
5.3 光源 145
5.3.1 点光源(Point Light) 146
5.3.2 聚光灯 147
5.3.3 平行光 148
5.4 天空盒子 149
5.4.1 Skybox组件 149
5.4.2 在场景中添加天空盒子 151
5.5 常用编辑器组件 152
5.5.1 摄像机 152
5.5.2 摄像机的类型 153
5.5.3 定制导航菜单栏 155
5.5.4 预设 157
5.5.5 抗锯齿 159
5.6 游戏实例——摄像机切换镜头 162
5.7 本章小结 164
第6章 物理引擎 165
6.1 刚体 165
6.1.1 简单使用 165
6.1.2 物理管理器 167
6.1.3 力 168
6.1.4 碰撞与休眠 169
6.2 碰撞器 170
6.2.1 添加碰撞器 171
6.2.2 物理材质 171
6.3 角色控制器 173
6.3.1 第一人称 173
6.3.2 第三人称 175
6.3.3 控制组件 176
6.3.4 移动与飞行 178
6.3.5 碰撞监测 180
6.4 射线 182
6.4.1 射线的原理 182
6.4.2 碰撞监测 183
6.5 关节 185
6.5.1 关节介绍 185
6.5.2 实例——关节组件 186
6.6 粒子特效 188
6.6.1 粒子发射器 188
6.6.2 粒子动画 189
6.6.3 粒子渲染器 190
6.6.4 粒子效果实例 191
6.6.5 布料 193
6.6.6 路径渲染 196
6.7 游戏实例——击垮围墙 198
6.8 本章小结 200
第7章 输入与控制 201
7.1 键盘事件 201
7.1.1 按下事件 201
7.1.2 抬起事件 203
7.1.3 长按事件 205
7.1.4 任意键事件 205
7.1.5 实例——组合按键 206
7.2 鼠标事件 211
7.2.1 按下事件 211
7.2.2 抬起事件 212
7.2.3 长按事件 213
7.3 自定义按键事件 214
7.3.1 输入管理器 214
7.3.2 按键事件 215
7.3.3 按键轴 216
7.3.4 实例——观察模型 217
7.4 模型与动画 219
7.4.1 模型的载入 219
7.4.2 设置3D动画 220
7.4.3 播放3D动画 221
7.4.4 动画剪辑 222
7.4.5 动画的帧 224
7.5 GL图像库 226
7.5.1 绘制线 226
7.5.2 实例——绘制曲线 228
7.5.3 绘制四边形 230
7.5.4 绘制三角形 232
7.5.5 绘制3D几何图形 233
7.5.6 线渲染器 236
7.5.7 网格渲染 239
7.6 游戏实例——控制人物移动 241
7.7 本章小结 243
第8章 持久化数据 244
8.1 PlayerPrefs类 244
8.1.1 保存与读取数据 244
8.1.2 删除数据 245
8.1.3 实例——注册界面 245
8.2 自定义文件 247
8.2.1 文件的创建与写入 247
8.2.2 文件的读取 248
8.2.3 实例——读取笑话 250
8.3 应用程序 253
8.3.1 创建关卡 253
8.3.2 切换关卡 253
8.3.3 截屏 254
8.3.4 打开网页 255
8.3.5 退出游戏 256
8.4 资源数据库 256
8.4.1 加载资源 256
8.4.2 创建资源 257
8.4.3 创建文件夹 258
8.4.4 移动与复制 260
8.4.5 删除与刷新 260
8.4.6 实例——鼠标拖动模型 261
8.4.7 实例——鼠标拣选 264
8.5 游戏实例——接受任务 265
8.6 本章小结 270
第9章 多媒体与网络 271
9.1 游戏音频 271
9.1.1 音频介绍 271
9.1.2 添加音频 271
9.1.3 播放音频 273
9.2 游戏视频 275
9.2.1 创建视频 275
9.2.2 播放视频 276
9.2.3 GUI播放视频 278
9.3 网络 279
9.3.1 下载文件 279
9.3.2 自定义资源包 281
9.3.3 下载资源包 283
9.3.4 创建本地服务器 285
9.3.5 客户端连接服务器 289
9.3.6 实例——多人聊天服务器端 290
9.3.7 实例——多人聊天客户端 292
9.4 游戏实例——简单的网络游戏 297
9.5 本章小结 304
第10章 游戏实例——突出重围 305
10.1 游戏状态机 305
10.2 游戏界面 307
10.2.1 游戏主菜单 307
10.2.2 制作角色血条 311
10.2.3 制作图片数字 312
10.3 游戏逻辑 314
10.3.1 发射子弹与击打目标 314
10.3.2 敌人的AI 318
10.3.3 增加敌人预设 321
10.4 完整的游戏 322
10.5 本章小结 334
· · · · · · (收起)
"Unity 3D游戏开发"试读 · · · · · ·
近年来,游戏行业出现了前所未有的震荡期,各种平台的涌现使得行业内部的竞争愈演愈烈。前几年,要想制作好的游戏,肯定就需要强大硬件的支持,所以大部分3D游戏都出现在PC或PS3、Xbox等专业游戏主机上,其他平台则由于受硬件条件的限制而无法制作出较好的游戏。 目前基于iOS、Android、Windows Phone 7等移动平台的智能手机迅速崛起,它们的硬件配置已经得到大幅提升,目前的硬件条件已...
原文摘录 · · · · · ·
-
``` javascript function Update() { //移动模型 transform.Translate(Vector3.forward * Time.deltatime); } ``` 这里的`Updata()`方法为系统所调用,**系统在每一帧都会调用该方法**。该方法前面的function关键字为JavaScript语言的标准用法,表示后面跟随的`Update()`是一个方法。 `transform.Translate()`方法用于设置游戏对象平移的方向,该方法中的参数为移动的方向,其中`Vector3.forward`表示移动的方向为前方,`Time.deltaTime`表示`Update()`方法上一帧持续的时间,它俩的乘积就是沿着前方模型一次移动的距离。 (查看原文) —— 引自第29页 -
如果想要一个值根据每帧的变化而变化(增加或减少) ,你应该使用 Time.deltaTime来乘以这个值。这样才能使得变化的效果依赖于单位时间,而不是帧频。这不仅使得游戏的运行独立于帧频,也使得运动的效果符合现实。 (查看原文) —— 引自第29页
丛书信息
· · · · · ·
喜欢读"Unity 3D游戏开发"的人也喜欢的电子书 · · · · · ·
喜欢读"Unity 3D游戏开发"的人也喜欢 · · · · · ·
-
- 网络游戏核心技术与实战 6.6
-
- Unity3D手机游戏开发 7.6
-
- 计算机图形学 8.6
-
- Cocos2d-x高级开发教程 6.9
-
- 软件加密与解密 8.6
-
- C++ API设计 8.3
-
- TCP/IP高效编程 7.8
-
- Lua设计与实现 8.1
-
- 征服C指针 8.3
-
- 游戏编程全接触 8.0
Unity 3D游戏开发的书评 · · · · · · ( 全部 4 条 )
难度略浅,讲解不细,自学慎看
一般般,个人觉得不太适合初学者
适合入门,有一定Unity3d基础者请绕行
> 更多书评 4篇
这本书的其他版本 · · · · · · ( 全部2 )
-
人民邮电出版社 (2018)6.3分 25人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于Unity 3D游戏开发的评论:
feed: rss 2.0
0 有用 花火町 2012-10-02 21:53:32
中文的Unity参考资料非常少,从安装到脚本的实例介绍比较详细,作为入门时手头翻看的工具书还不错,但是一些细节方面就没法儿从这本获取了,要把unity的场景做到精致,还有很多很多要学....
0 有用 kaze 才没有 2013-03-05 00:17:57
不太推荐这本书,iOS入门用,系统学习的话章节分的有些混乱
0 有用 小明 2019-03-06 22:19:18
太老了,而且现在都是C#做脚本语言,没有JS了,希望能更新一下
0 有用 daohu 2019-08-03 14:13:04
入门很不错的书籍
0 有用 Conan Xin 2013-11-16 16:42:26
适合初学者