本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
Unity 2D游戏开发
使用C#进行独立游戏编程,专注于2D游戏和Unity不断扩展的2D工作流程。让发现、购买和销售游戏比以往任何时候都容易。
[美] 杰瑞德·哈尔彭(Jared Halpern) 著,郭华丰,陶有旺 译
79.8ISBN:9787302550525
编辑推荐
虽然许多书籍都专注于使用Unity创作3D游戏,但独立开发者更容易成长的市场是2D游戏。如果你意识到自己是为游戏而生,并想要开发和制作游戏,那你一定会受到本书中真实的、独立的游戏实例的启发。书中实例使用Unity持续更新的2D工作流程中的新工具,讲解在Unity中开发2D游戏的基本概念。
我们正处于独立游戏的黄金时代,现在正是构建你一直梦想的游戏的更佳时机。《Unity 2D 游戏开发》可以为你指明方向。
内容简介
《Unity 2D游戏开发》既是C#(Unity引擎的业界标准语言)语言的真实演练,也是包含脚本编写、玩家输入管理、资源使用、动画、碰撞检测和状态管理的重要的Unity核心课程。除基础知识外,你还将学习最佳编程实践,有用的游戏架构模式设计,以及如何自定义Unity使其符合自己的需要。所有内容旨在构建运行良好的2D游戏。
通过专注于2D游戏和Unity不断扩展的2D工作流程,本书深入探讨了一些非常有用的2D主题,如精灵图集、瓦片切割以及全新的Tilemap(瓦片地图)功能。全新的分发渠道,如App Store、Google Play、itch.io、Steam以及GOG.com,让发现、购买和销售游戏比以往任何时候都容易。
作者简介
ared Halpern是一名拥有计算机科学背景和超过12年各种技术工作经验的软件开发人员。最近他专注于Apple和Unity。多年来,Jared已经开发了许多iPhone应用程序,包括游戏、增强现实(AR)、摄影、电子商务、视频和GIF应用程序。他的兴趣包括Swift、Unity、AR、游戏开发,以及使用这些技术开发的创造性应用程序。他对游戏开发充满热情,希望将游戏作为一种交互媒介用于讲故事,以及提供其他媒介无法提供的体验。他目前喜欢做一名自由软件开发人员。
目录
目 录
第1章 游戏与游戏引擎 1
1.1 游戏引擎——它们是什么 1
1.1.1 建造房子的第一种方法 2
1.1.2 建造房子的第二种方法 3
1.1.3 关于第一种方法 3
1.1.4 关于第二种方法 3
1.1.5 结论 4
1.2 历史上的游戏引擎 4
1.3 今天的游戏引擎 5
1.4 Unity游戏引擎 6
1.5 本章小结 7
目录
第壹章 Unity基础 1
1.1 初识游戏引擎和Unity 2
1.2 运行Unity 3
1.2.1 Unity的版本 3
1.2.2 下载并安装Unity 4
1.2.3 在线激活Unity 4
1.2.4 运行示例工程 4
1.3 创建一个Hello World程序 7
1.3.1 安装Visual Studio 8
1.3.2 编写脚本 8
1.3.3 编译输出 10
1.4 调试程序 11
1.4.1 显示Log 11
1.4.2 在Visual Studio中设置断点 11
1.5 Unity脚本基础 12
1.5.1 Script(脚本)组件 12
1.5.2 脚本的执行顺序 13
1.5.3 脚本的序列化 14
1.5.4 组件式编程 15
1.5.5 协程编程 16
1.6 预置文件Prefab和资源管理 17
1.6.1 创建Prefab 17
1.6.2 Unity资源包 18
1.6.3 管理Unity插件 18
1.7 读取资源和实例化 19
1.7.1 在脚本中创建一个Game Object 19
1.7.2 通过序列化方式引用资源 19
1.7.3 通过IO方式读取资源 20
1.8 保存工程 20
1.9 时间和动画 21
1.10 小结 21
第2章 太空射击游戏 23
2.1 游戏介绍 24
2.1.1 游戏操作 24
2.1.2 主角和敌人 24
2.1.3 游戏UI 24
2.2 导入美术资源 24
2.3 创建场景 25
2.3.1 创建火星背景和星空动画 26
2.3.2 设置摄像机和灯光 30
2.4 创建主角 31
2.4.1 创建脚本 32
2.4.2 控制飞船移动 33
2.4.3 创建子弹 35
2.4.4 创建子弹Prefab 36
2.4.5 发射子弹 37
2.5 创建敌人 38
2.6 物理碰撞 39
2.6.1 添加碰撞体 39
2.6.2 触发碰撞 40
2.7 高ji敌人 43
2.7.1 创建敌人 43
2.7.2 发射子弹 44
2.8 声音与te效 46
2.9 敌人生成器 48
2.10 游戏UI和战斗管理 50
2.10.1 创建显示得分的UI界面 50
2.10.2 创建显示游戏失败的UI界面 51
2.10.3 编写脚本 52
2.11 关卡跳转 54
2.12 用鼠标控制主角 56
2.13 精que的碰撞检测 58
2.14 自动创建Prefab 60
2.15 发布游戏 62
2.16 使用PoolManager创建对象池 64
2.17 小结 66
第3章 第壹人称射击游戏 68
3.1 策划 69
3.1.1 游戏介绍 69
3.1.2 UI界面 69
3.1.3 主角 69
3.1.4 敌人 69
3.2 游戏场景 69
3.3 主角 70
3.3.1 角色控制器 70
3.3.2 摄像机 72
3.3.3 武器 73
3.4 敌人 74
3.4.1 寻路 74
3.4.2 设置动画 76
3.4.3 行为 77
3.5 UI界面 80
3.6 交互 84
3.6.1 主角的射击 84
3.6.2 敌人的进攻与死亡 86
3.7 出生点 88
3.8 小地图 90
3.9 小结 93
第4章 塔防游戏 94
4.1 策划 95
4.1.1 场景 95
4.1.2 摄像机 95
4.1.3 胜负判定 95
4.1.4 敌人 95
4.1.5 防守单位 95
4.1.6 UI界面 95
4.2 地图编辑器 96
4.2.1 “格子”数据 96
4.2.2 在Inspector窗口添加自定义UI
控件 98
4.2.3 创建一个自定义窗口 100
4.3 游戏场景 102
4.4 制作UI 103
4.5 创建游戏管理器 105
4.6 摄像机 109
4.7 路点 111
4.8 敌人 115
4.9 敌人生成器 118
4.9.1 创建敌人生成器 118
4.9.2 遍历敌人 121
4.10 防守单位 121
4.11 生命条 130
4.12 小结 132
第5章 2D游戏 133
5.1 Unity 2D系统简介 134
5.2 创建Sprite 134
5.2.1 使用SpriteEditor创建Sprite 134
5.2.2 使用SpritePacker创建Sprite 136
5.2.3 图层排序 137
5.2.4 Sprite边框和重复显示 138
5.3 动画制作 138
5.3.1 序列帧动画 138
5.3.2 使用脚本实现序列帧动画 140
5.3.3 骨骼动画 141
5.4 2D物理 142
5.5 捕鱼游戏 146
5.5.1 游戏玩法 146
5.5.2 准备2D资源 146
5.5.3 创建鱼 148
5.5.4 创建鱼群生成器 150
5.5.5 创建子弹和大炮 151
5.5.6 物理碰撞 153
5.6 2D材质 154
5.6.1 修改Sprite颜色 154
5.6.2 自定义的黑白效果材质 155
5.7 小结 155
第6章 与Web服务器的交互 156
6.1 Web服务器简介 157
6.2 在Windows上安装部署Apache 158
6.2.1 安装Apache 158
6.2.2 Apache常用命令 159
6.2.3 安装MySQL 159
6.2.4 安装PHP 161
6.2.5 安装Redis 162
6.3 PHP开发环境 163
6.3.1 第壹个PHP程序 163
6.3.2 调试PHP代码 164
6.3.3 PHP基本语法 165
6.4 WWW基本应用 167
6.4.1 创建简单的UI界面 167
6.4.2 GET请求 168
6.4.3 POST请求 169
6.4.4 上传下载图片 170
6.4.5 下载声音文件 171
6.5 分数排行榜 172
6.5.1 创建数据库 172
6.5.2 创建PHP脚本 173
6.5.3 上传下载分数 175
6.5.4 使用Redis缓存数据 177
6.6 MD5验证 179
6.7 小结 180
第7章 TCP UDP实例 181
7.1 网络开发简介 182
7.2 简单的网络通信程序 184
7.2.1 简单的TCP程序 184
7.2.2 简单的UDP程序 186
7.3 异步TCP网络通信 188
7.3.1 创建数据包对象 188
7.3.2 逻辑处理 190
7.3.3 核心TCP网络功能 192
7.3.4 创建聊天协议 196
7.4 Unity聊天客户端 197
7.5 聊天服务器端 200
7.6 JSON.NET简介 205
7.7 小结 206
第8章 HTML5(WebGL)游戏移植 207
8.1 关于HTML5和WebGL 208
8.2 导出Unity游戏到WebGL平台 208
8.2.1 导出WebGL游戏 208
8.2.2 设置WebGL模板 210
8.2.3 默认的index.html 210
8.2.4 文件访问 211
8.3 自定义Loading页面 212
8.4 编写WebGL游戏插件 215
8.4.1 访问示例一 215
8.4.2 访问示例二 216
8.5 在网页上保存游戏记录 217
8.6 小结 217
第9章 iOS游戏移植 218
9.1 iOS简介 219
9.2 软件安装 219
9.3 申请开发权限 219
9.4 设置iOS开发环境 219
9.5 测试iOS游戏 222
9.6 发布iOS游戏 223
9.7 对接iOS原生语言 223
9.7.1 在Xcode中创建Objectiv-C
代码 223
9.7.2 在Unity中引用Objectiv-C
代码 226
9.8 内消费 227
9.9 本地存储位置 227
9.10 使用命令行编译Xcode工程 228
9.10.1 编译Xcode工程 228
9.10.2 打包.ipa文件 228
9.11 小结 228
第壹0章 Android游戏移植 229
10.1 Android简介 230
10.2 安装Android SDK 230
10.3 运行Android游戏 231
10.3.1 准备测试环境 231
10.3.2 设置Android游戏工程 232
10.3.3 测试Android游戏 234
10.3.4 发布Android游戏 234
10.3.5 Obb数据包 236
10.4 使用Android Studio 236
10.4.1 Android Studio简介 237
10.4.2 配置Android Studio 237
10.4.3 创建Hello world程序 238
10.5 从Unity到Android Studio 239
10.5.1 创建Unity工程 240
10.5.2 创建Android Studio工程 241
10.5.3 查看Log 243
10.5.4 发布程序 244
10.6 使用脚本编译游戏 245
10.6.1 在Unity中使用脚本导出
Android工程 245
10.6.2 使用Python脚本访问Unity
命令行 247
10.6.3 使用命令行编译Android Studio
工程 248
10.7 获得签名证书的sha1值 249
10.8 导入库文件 250
10.9 Plugins目录 251
10.10 代码混淆 251
10.11 百度地图实例 252
10.11.1 导入百度地图SDK 252
10.11.2 实现百度地图控件 253
10.12 触屏操作 256
10.13 AssetBundle 261
10.13.1 创建AssetBundle资源 261
10.13.2 下载、实例化AssetBundle
资源 263
10.13.3 批量创建AssetBundle 264
10.14 小结 265
第壹1章 Unity新GUIwan全攻略 266
11.1 Unity的GUI系统 267
11.2 Canvas(画布) 267
11.2.1 创建Canvas 268
11.2.2 设置Canvas 268
11.2.3 Canvas的屏幕适应模式 271
11.2.4 Canvas层级内UI控件的
排序 271
11.2.5 Canvas的隐藏和显示 272
11.2.6 查找UI层级下的子控件 272
11.3 UI坐标对齐方式 272
11.4 Text(文字) 273
11.5 自定义字体 274
11.5.1 创建字体贴图 274
11.5.2 创建Shader 276
11.6 Image(图像) 278
11.6.1 创建Image控件 278
11.6.2 设置Alpha 279
11.6.3 设置Raycast Target 279
11.6.4 设置UI图像为Sliced类型 280
11.6.5 设置UI图像为Tiled类型 281
11.6.6 设置UI图像为Filled类型 281
11.6.7 Mask(蒙版) 282
11.7 Button(按钮)控件 283
11.7.1 创建按钮 283
11.7.2 设置按钮状态变化 283
11.7.3 在编辑器中设置按钮触发
事件 284
11.7.4 在脚本中定义按钮单击事件 285
11.7.5 判断按压按钮事件 286
11.8 Toggle(开关)控件 286
11.8.1 创建Toggle控件 286
11.8.2 Toggle组 287
11.8.3 Toggle控件的脚本 288
11.9 Raw Image控件 288
11.10 Slider(滑块)控件 290
11.10.1 创建Slider控件 290
11.10.2 改变滑块大小 290
11.10.3 使用脚本控制滑块 291
11.11 Input Field(文本输入)控件 291
11.12 Scroll View(卷轴视图)控件 292
11.13 Dropdown(下拉列表)控件 294
11.14 实用UI功能 295
11.14.1 判断是否单击了UI 295
11.14.2 拖动UI控件方法1 295
11.14.3 拖动UI控件方法2 297
11.14.4 在UI前面显示粒子te效 298
11.15 使用插件DOTween制作动画 299
11.15.1 在编辑器中设置DOTween
动画 299
11.15.2 在脚本中设置DOTween
动画 300
11.16 使用插件EnhancedScroller优化
卷轴视图 301
11.16.1 创建数据模型 302
11.16.2 创建UI视图控制脚本 302
11.16.3 创建控制器 302
11.16.4 创建卷轴视图UI 303
11.17 小结 305
第壹2章 游戏开发中的美术工作
流程 306
12.1 Unity和艺术家 307
12.2 视图操作捕捉 307
12.3 光照和渲染系统 308
12.3.1 光源类型 308
12.3.2 渲染管道 309
12.3.3 质量设置 310
12.3.4 实时阴影 310
12.3.5 环境光 312
12.3.6 Fog(雾) 313
12.3.7 直接照明与间接照明 314
12.3.8 Lightmapping(光照贴图) 316
12.3.9 环境反射采样 321
12.3.10 光照采样 322
12.4 色彩空间 324
12.5 物理材质 326
12.6 摄像机 329
12.7 地形 331
.......