深受读者赞誉的Unity游戏发原创经典,资深Unity游戏发工程师十年经验分享 根据Unity 2018改版升级,多款热门游戏实战教学,Unity3D\2D游戏发核心技术揭秘 新增VR\AR游戏发、Shade图形编程、Lua脚本交互与热更新等,内容更精彩
售 价:¥
纸质售价:¥78.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
封面页
书名页
版权页
作者简介
内容简介
前言
编写本书的目的
本书主要内容
读者对象
代码下载
目录
第1章 Unity基础
1.1 初识游戏引擎和Unity
1.2 运行Unity
1.2.1 Unity的版本
1.2.2 下载并安装Unity
1.2.3 在线激活Unity
1.2.4 运行示例工程
1.3 创建一个Hello World程序
1.3.1 安装Visual Studio
1.3.2 编写脚本
1.3.3 编译输出
1.4 调试程序
1.4.1 显示Log
1.4.2 在Visual Studio中设置断点
1.5 Unity脚本基础
1.5.1 Script(脚本)组件
1.5.2 脚本的执行顺序
1.5.3 脚本的序列化
1.5.4 组件式编程
1.5.5 协程编程
1.6 预置文件Prefab和资源管理
1.6.1 创建Prefab
1.6.2 Unity资源包
1.6.3 管理Unity插件
1.7 读取资源和实例化
1.7.1 在脚本中创建一个Game Object
1.7.2 通过序列化方式引用资源
1.7.3 通过IO方式读取资源
1.8 保存工程
1.9 时间和动画
1.10 小结
第2章 太空射击游戏
2.1 游戏介绍
2.1.1 游戏操作
2.1.2 主角和敌人
2.1.3 游戏UI
2.2 导入美术资源
2.3 创建场景
2.3.1 创建火星背景和星空动画
2.3.2 设置摄像机和灯光
2.4 创建主角
2.4.1 创建脚本
2.4.2 控制飞船移动
2.4.3 创建子弹
2.4.4 创建子弹Prefab
2.4.5 发射子弹
2.5 创建敌人
2.6 物理碰撞
2.6.1 添加碰撞体
2.6.2 触发碰撞
2.7 高级敌人
2.7.1 创建敌人
2.7.2 发射子弹
2.8 声音与特效
2.9 敌人生成器
2.10 游戏UI和战斗管理
2.10.1 创建显示得分的UI界面
2.10.2 创建显示游戏失败的UI界面
2.10.3 编写脚本
2.11 关卡跳转
2.12 用鼠标控制主角
2.13 精确的碰撞检测
2.14 自动创建Prefab
2.15 发布游戏
2.16 使用PoolManager创建对象池
2.17 小结
第3章 第一人称射击游戏
3.1 策划
3.1.1 游戏介绍
3.1.2 UI界面
3.1.3 主角
3.1.4 敌人
3.2 游戏场景
3.3 主角
3.3.1 角色控制器
3.3.2 摄像机
3.3.3 武器
3.4 敌人
3.4.1 寻路
3.4.2 设置动画
3.4.3 行为
3.5 UI界面
3.6 交互
3.6.1 主角的射击
3.6.2 敌人的进攻与死亡
3.7 出生点
3.8 小地图
3.9 小结
第4章 塔防游戏
4.1 策划
4.1.1 场景
4.1.2 摄像机
4.1.3 胜负判定
4.1.4 敌人
4.1.5 防守单位
4.1.6 UI界面
4.2 地图编辑器
4.2.1 “格子”数据
4.2.2 在Inspector窗口添加自定义UI控件
4.2.3 创建一个自定义窗口
4.3 游戏场景
4.4 制作UI
4.5 创建游戏管理器
4.6 摄像机
4.7 路点
4.8 敌人
4.9 敌人生成器
4.9.1 创建敌人生成器
4.9.2 遍历敌人
4.10 防守单位
4.11 生命条
4.12 小结
第5章 2D游戏
5.1 Unity 2D系统简介
5.2 创建Sprite
5.2.1 使用SpriteEditor创建Sprite
5.2.2 使用SpritePacker创建Sprite
5.2.3 图层排序
5.2.4 Sprite边框和重复显示
5.3 动画制作
5.3.1 序列帧动画
5.3.2 使用脚本实现序列帧动画
5.3.3 骨骼动画
5.4 2D物理
5.5 捕鱼游戏
5.5.1 游戏玩法
5.5.2 准备2D资源
5.5.3 创建鱼
5.5.4 创建鱼群生成器
5.5.5 创建子弹和大炮
5.5.6 物理碰撞
5.6 2D材质
5.6.1 修改Sprite颜色
5.6.2 自定义的黑白效果材质
5.7 小结
第6章 与Web服务器的交互
6.1 Web服务器简介
6.2 在Windows上安装部署Apache
6.2.1 安装Apache
6.2.2 Apache常用命令
6.2.3 安装MySQL
6.2.4 安装PHP
6.2.5 安装Redis
6.3 PHP开发环境
6.3.1 第一个PHP程序
6.3.2 调试PHP代码
6.3.3 PHP基本语法
6.4 WWW基本应用
6.4.1 创建简单的UI界面
6.4.2 GET请求
6.4.3 POST请求
6.4.4 上传下载图片
6.4.5 下载声音文件
6.5 分数排行榜
6.5.1 创建数据库
6.5.2 创建PHP脚本
6.5.3 上传下载分数
6.5.4 使用Redis缓存数据
6.6 MD5验证
6.7 小结
第7章 TCP UDP实例
7.1 网络开发简介
7.2 简单的网络通信程序
7.2.1 简单的TCP程序
7.2.2 简单的UDP程序
7.3 异步TCP网络通信
7.3.1 创建数据包对象
7.3.2 逻辑处理
7.3.3 核心TCP网络功能
7.3.4 创建聊天协议
7.4 Unity聊天客户端
7.5 聊天服务器端
7.6 JSON.NET简介
7.7 小结
第8章 HTML5(WebGL)游戏移植
8.1 关于HTML5和WebGL
8.2 导出Unity游戏到WebGL平台
8.2.1 导出WebGL游戏
8.2.2 设置WebGL模板
8.2.3 默认的index.html
8.2.4 文件访问
8.3 自定义Loading页面
8.4 编写WebGL游戏插件
8.4.1 访问JavaScript示例一
8.4.2 访问JavaScript示例二
8.5 在网页上保存游戏记录
8.6 小结
第9章 iOS游戏移植
9.1 iOS简介
9.2 软件安装
9.3 申请开发权限
9.4 设置iOS开发环境
9.5 测试iOS游戏
9.6 发布iOS游戏
9.7 对接iOS原生语言
9.7.1 在Xcode中创建Objectiv-C代码
9.7.2 在Unity中引用Objectiv-C代码
9.8 内消费
9.9 本地存储位置
9.10 使用命令行编译Xcode工程
9.10.1 编译Xcode工程
9.10.2 打包.ipa文件
9.11 小结
第10章 Android游戏移植
10.1 Android简介
10.2 安装Android SDK
10.3 运行Android游戏
10.3.1 准备测试环境
10.3.2 设置Android游戏工程
10.3.3 测试Android游戏
10.3.4 发布Android游戏
10.3.5 Obb数据包
10.4 使用Android Studio
10.4.1 Android Studio简介
10.4.2 配置Android Studio
10.4.3 创建Hello world程序
10.5 从Unity到Android Studio
10.5.1 创建Unity工程
10.5.2 创建Android Studio工程
10.5.3 查看Log
10.5.4 发布程序
10.6 使用脚本编译游戏
10.6.1 在Unity中使用脚本导出Android工程
10.6.2 使用Python脚本访问Unity命令行
10.6.3 使用命令行编译Android Studio工程
10.7 获得签名证书的sha1值
10.8 导入库文件
10.9 Plugins目录
10.10 代码混淆
10.11 百度地图实例
10.11.1 导入百度地图SDK
10.11.2 实现百度地图控件
10.12 触屏操作
10.13 AssetBundle
10.13.1 创建AssetBundle资源
10.13.2 下载、实例化AssetBundle资源
10.13.3 批量创建AssetBundle
10.14 小结
第11章 Unity新GUI完全攻略
11.1 Unity的GUI系统
11.2 Canvas(画布)
11.2.1 创建Canvas
11.2.2 设置Canvas
11.2.3 Canvas的屏幕适应模式
11.2.4 Canvas层级内UI控件的排序
11.2.5 Canvas的隐藏和显示
11.2.6 查找UI层级下的子控件
11.3 UI坐标对齐方式
11.4 Text(文字)
11.5 自定义字体
11.5.1 创建字体贴图
11.5.2 创建Shader
11.6 Image(图像)
11.6.1 创建Image控件
11.6.2 设置Alpha
11.6.3 设置Raycast Target
11.6.4 设置UI图像为Sliced类型
11.6.5 设置UI图像为Tiled类型
11.6.6 设置UI图像为Filled类型
11.6.7 Mask(蒙版)
11.7 Button(按钮)控件
11.7.1 创建按钮
11.7.2 设置按钮状态变化
11.7.3 在编辑器中设置按钮触发事件
11.7.4 在脚本中定义按钮单击事件
11.7.5 判断按压按钮事件
11.8 Toggle(开关)控件
11.8.1 创建Toggle控件
11.8.2 Toggle组
11.8.3 Toggle控件的脚本
11.9 Raw Image控件
11.10 Slider(滑块)控件
11.10.1 创建Slider控件
11.10.2 改变滑块大小
11.10.3 使用脚本控制滑块
11.11 Input Field(文本输入)控件
11.12 Scroll View(卷轴视图)控件
11.13 Dropdown(下拉列表)控件
11.14 实用UI功能
11.14.1 判断是否单击了UI
11.14.2 拖动UI控件方法1
11.14.3 拖动UI控件方法2
11.14.4 在UI前面显示粒子特效
11.15 使用插件DOTween制作动画
11.15.1 在编辑器中设置DOTween动画
11.15.2 在脚本中设置DOTween动画
11.16 使用插件EnhancedScroller优化卷轴视图
11.16.1 创建数据模型
11.16.2 创建UI视图控制脚本
11.16.3 创建控制器
11.16.4 创建卷轴视图UI
11.17 小结
第12章 游戏开发中的美术工作流程
12.1 Unity和艺术家
12.2 视图操作捕捉
12.3 光照和渲染系统
12.3.1 光源类型
12.3.2 渲染管道
12.3.3 质量设置
12.3.4 实时阴影
12.3.5 环境光
12.3.6 Fog(雾)
12.3.7 直接照明与间接照明
12.3.8 Lightmapping(光照贴图)
12.3.9 环境反射采样
12.3.10 光照采样
12.4 色彩空间
12.5 物理材质
12.6 摄像机
12.7 地形
12.8 粒子特效
12.9 物理设置
12.10 游戏资源
12.10.1 贴图
12.10.2 在3ds Max中创建法线贴图
12.10.3 3ds Max静态模型导出
12.10.4 3ds Max动画导出
12.10.5 Maya模型导出
12.11 Unity两足动画系统
12.11.1 修改3ds Max两足动画骨骼
12.11.2 导入3ds Max两足角色到Unity
12.11.3 导入角色动画到Unity
12.11.4 表情动画
12.11.5 动画控制器
12.12 动画插件Skele
12.13 电影片段制作
12.14 美术资源的优化
12.15 小结
第13章 Behavior Designer——行为树AI
13.1 行为树和AI
13.1.1 行为树插件的安装
13.1.2 简单的AI处理方式
13.1.3 状态机AI处理方式
13.1.4 Behavior Designer的行为树AI处理方式
13.2 行为树任务
13.2.1 任务返回值
13.2.2 Action(动作)
13.2.3 Composite(组合)
13.2.4 Conditional(条件)
13.2.5 Decorator(修饰)
13.3 行为树实例
13.3.1 主角的行为树
13.3.2 游荡的敌人
13.3.3 行为树的交互
13.4 行为树系统扩展
13.4.1 外部行为树
13.4.2 自定义任务
13.4.3 自定义共享数据类型
13.4.4 在脚本中设置行为树
13.4.5 在脚本中发送事件
13.5 优化
13.6 小结
第14章 玩转PlayMaker
14.1 关于PlayMaker
14.1.1 优点和缺点
14.1.2 安装
14.2 PlayMaker的模块和工作机制
14.2.1 有限状态机
14.2.2 创建PlayMaker状态机
14.2.3 State(状态)
14.2.4 Event(事件)
14.2.5 Action(动作)
14.2.6 变量
14.2.7 发送事件
14.3 自定义Action
14.4 小结
第15章 VR虚拟现实开发
15.1 VR简介
15.2 设置HTC Vive开发环境
15.3 VR操作示例
15.3.1 创建VR场景
15.3.2 手柄控制器
15.4 小结
第16章 AR增强现实开发
16.1 AR和Vuforia
16.2 创建Vuforia工程
16.3 准备AR参考目标
16.4 设置AR参考目标
16.5 小结
第17章 Shader编程与后期特效
17.1 Shader简介
17.2 渲染管线
17.3 ShaderLab语言
17.4 CG语言简介
17.5 Vertex and Fragment Shader示例
17.5.1 显示纹理和色彩
17.5.2 使用通道表现多个纹理
17.5.3 添加基本光照
17.5.4 UV动画效果
17.5.5 黑白效果
17.5.6 简单描边效果
17.5.7 Alpha透明效果
17.6 屏幕特效示例
17.7 后期特效
17.8 小结
第18章 动态编程和Lua
18.1 动态语言简介
18.2 动态读取程序集实现热更新
18.2.1 创建.dll文件
18.2.2 测试热更新.dll文件
18.2.3 通过反射访问.dll文件
18.3 Lua语言快速教程
18.3.1 MoonSharp和Lua开发环境的安装
18.3.2 Lua提供的类型
18.3.3 Lua的判断和循环语句
18.3.4 Lua的函数
18.3.5 Lua的IO操作
18.3.6 Lua的数组操作
18.3.7 Lua的字符串操作
18.3.8 Lua的协程
18.4 Lua与Unity的交互
18.4.1 在Unity中读取Lua代码
18.4.2 将Unity功能导入到Lua中
18.5 Lua脚本的热更新
18.6 小结
附录A C#语言
A.1 C#基础
A.1.1 C#简介
A.1.2 运行控制台程序
A.1.3 类型
A.1.4 内置类型
A.1.5 标识符
A.1.6 语句和表达式
A.1.7 变量和常量
A.1.8 枚举
A.1.9 数学操作符
A.1.10 关系操作符
A.1.11 逻辑操作符
A.1.12 操作符优先级
A.1.13 方法
A.1.14 递归
A.1.15 条件分支语句
A.1.16 循环语句
A.1.17 三元操作符
A.1.18 预处理
A.2 面向对象编程
A.2.1 类
A.2.2 this关键字
A.2.3 封装
A.2.4 继承与多态
A.2.5 静态成员
A.2.6 异常处理
A.3 字符串
A.4 数组
A.4.1 创建数组
A.4.2 遍历数组和迭代器
A.5 基本I/O操作
A.5.1 写文件
A.5.2 读文件
A.5.3 删除文件
A.5.4 二进制读写
A.6 泛型
A.6.1 实现泛型的基本语法
A.6.2 List的常见操作
A.6.3 List的排序
A.7 委托
A.7.1 委托
A.7.2 Lambda表达式
A.7.3 泛型委托
A.7.4 Action和Func
A.8 反射和特性
A.8.1 反射
A.8.2 特性
A.9 小结
附录B 特殊文件夹
附录C Unity编辑器菜单中英文对照
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜