自我提升
类型
6.3
豆瓣评分
可以朗读
语音朗读
301千字
字数
2018-09-01
发行日期
展开全部
主编推荐语
本书涵盖了Unity 3D实际应用中的各类功能,全方面讲解了其运行原理。
内容简介
Unity是一款市场占有率非常高的商业游戏引擎,横跨25个主流游戏平台。本书基于Unity 2018,结合2D游戏开发和3D游戏开发的案例,详细介绍了它的方方面面,内容涉及编辑器、游戏脚本、UGUI 游戏界面、动画系统、持久化数据、静态对象、多媒体、资源加载与优化、自动化与打包等。
目录
- 版权信息
- 序一
- 序二
- 推荐语
- 前言
- 第1章 基础知识
- 1.1 Unity简介
- 1.2 跨平台与多工种协作
- 1.3 Unity版本
- 1.4 Unity内置资源或拓展资源
- 1.5 示例项目打包与发布
- 1.6 Unity服务
- 1.7 小结
- 第2章 编辑器的结构
- 2.1 游戏项目
- 2.1.1 创建项目
- 2.1.2 打开项目
- 2.1.3 版本管理
- 2.1.4 安装多个版本的Unity
- 2.2 Project视图
- 2.2.1 创建资源
- 2.2.2 搜索资源
- 2.2.3 搜索标签
- 2.3 Hierarchy视图
- 2.3.1 创建游戏对象
- 2.3.2 搜索游戏对象
- 2.4 Inspector视图
- 2.4.1 标题栏
- 2.4.2 组件栏
- 2.5 Scene视图
- 2.5.1 导航栏
- 2.5.2 标题栏
- 2.5.3 坐标系控制器
- 2.5.4 视图预览
- 2.6 Game视图
- 2.6.1 标题栏
- 2.6.2 视图预览
- 2.7 导航栏视图
- 2.8 其他功能
- 2.8.1 小锁头
- 2.8.2 窗口菜单
- 2.8.3 保存组件参数
- 2.8.4 Package Manager
- 2.9 小结
- 第3章 拓展编辑器
- 3.1 拓展Project视图
- 3.1.1 拓展右键菜单
- 3.1.2 创建菜单
- 3.1.3 拓展布局
- 3.1.4 监听事件
- 3.2 拓展Hierarchy视图
- 3.2.1 拓展菜单
- 3.2.2 拓展布局
- 3.2.3 重写菜单
- 3.3 拓展Inspector视图
- 3.3.1 拓展源生组件
- 3.3.2 拓展继承组件
- 3.3.3 组件不可编辑
- 3.3.4 Context菜单
- 3.4 拓展Scene视图
- 3.4.1 辅助元素
- 3.4.2 辅助UI
- 3.4.3 常驻辅助UI
- 3.4.4 禁用选中对象
- 3.5 拓展Game视图
- 3.6 MenuItem菜单
- 3.6.1 覆盖系统菜单
- 3.6.2 自定义菜单
- 3.6.3 源生自定义菜单
- 3.6.4 拓展全局自定义快捷键
- 3.7 面板拓展
- 3.7.1 Inspector面板
- 3.7.2 EditorWindows窗口
- 3.7.3 EditorWindows下拉菜单
- 3.7.4 预览窗口
- 3.7.5 获取预览信息
- 3.8 Unity编辑器的源码
- 3.8.1 查看DLL
- 3.8.2 清空控制台日志
- 3.8.3 获取EditorStyles样式
- 3.8.4 获取内置图标样式
- 3.8.5 拓展默认面板
- 3.8.6 例子:查找ManagedStaticReferences()静态引用
- 3.8.7 UIElements
- 3.8.8 查询系统窗口
- 3.8.9 自定义资源导入类型
- 3.9 小结
- 第4章 游戏脚本
- 4.1 创建脚本
- 4.1.1 脚本模板
- 4.1.2 拓展脚本模板
- 4.2 脚本的生命周期
- 4.2.1 脚本绑定事件
- 4.2.2 脚本初始化和销毁
- 4.2.3 脚本更新与协程任务
- 4.2.4 停止协程任务
- 4.2.5 使用OnGUI显示FPS
- 4.3 多脚本管理
- 4.3.1 脚本的执行顺序
- 4.3.2 多脚本优化
- 4.4 脚本序列化
- 4.4.1 查看数据
- 4.4.2 私有序列化数据
- 4.4.3 serializedObject
- 4.4.4 监听部分元素修改事件
- 4.4.5 序列化/反序列化监听
- 4.4.6 ScriptableObject
- 4.4.7 脚本的Attributes特性
- 4.4.8 单例脚本
- 4.4.9 定时器
- 4.4.10 CustomYieldInstruction
- 4.4.11 工作线程
- 4.5 脚本编译
- 4.5.1 编译规则
- 4.5.2 优化编译
- 4.5.3 编译DLL
- 4.5.4 脚本跨平台
- 4.5.5 程序集定义
- 4.5.6 日志
- 4.6 脚本调试
- 4.7 小结
- 第5章 UGUI游戏界面
- 5.1 基础元素
- 5.1.1 Text
- 5.1.2 描边和阴影
- 5.1.3 动态字体
- 5.1.4 字体花屏
- 5.1.5 Image组件
- 5.1.6 Raw Image组件
- 5.1.7 Button组件
- 5.1.8 Toggle组件
- 5.1.9 Slider组件
- 5.1.10 Scrollbar & ScrollView组件
- 5.1.11 使用ScrollRect组件制作游戏摇杆
- 5.2 事件系统
- 5.2.1 UI事件
- 5.2.2 UI事件管理
- 5.2.3 UnityAction和UnityEvent
- 5.2.4 RaycastTarget优化
- 5.2.5 渗透UI事件
- 5.2.6 例子——新手引导聚合动画
- 5.3 Canvas组件
- 5.3.1 自适应屏幕
- 5.3.2 锚点对齐方式
- 5.3.3 背景图全屏
- 5.3.4 布局组件
- 5.3.5 Canvas优化
- 5.4 Atlas
- 5.4.1 创建Atlas
- 5.4.2 读取Atlas
- 5.4.3 Variant
- 5.4.4 多图集管理
- 5.5 UGUI实例
- 5.5.1 置灰
- 5.5.2 粒子特效与UI的排序
- 5.5.3 Mask & RectMask2D裁切
- 5.5.4 粒子的裁切
- 5.5.5 粒子自适应
- 5.5.6 滑动列表嵌套
- 5.5.7 UI模板嵌套
- 5.5.8 UI特效与界面分离
- 5.5.9 输入事件
- 5.5.10 按钮不规则点击区域
- 5.5.11 更换默认Shader
- 5.5.12 小地图优化
- 5.5.13 查看UGUI源码
- 5.6 小结
- 第6章 2D游戏开发
- 6.1 Sprite
- 6.1.1 2D摄像机与分辨率自适应
- 6.1.2 Sprite Renderer排序
- 6.1.3 裁切
- 6.2 Sprite动画
- 6.2.1 创建2D动画
- 6.2.2 2D动画控制器
- 6.3 Tile地图
- 6.3.1 创建Tile
- 6.3.2 Tile Palette
- 6.3.3 编辑Tile
- 6.3.4 多Tile编辑与排序
- 6.3.5 拓展Tile Palette
- 6.3.6 拓展Tile
- 6.3.7 更新Tile
- 6.4 2D碰撞检测
- 6.4.1 Collider 2D
- 6.4.2 Rigidbody 2D
- 6.4.3 碰撞事件
- 6.4.4 碰撞方向
- 6.4.5 触发器监听
- 6.4.6 Effectors 2D
- 6.4.7 优化
- 6.4.8 计算区域
- 6.5 小结
- 第7章 动画系统
- 7.1 模型
- 7.1.1 Mesh Filter
- 7.1.2 Mesh Renderer
- 7.1.3 Prefab
- 7.2 动画编辑器
- 7.2.1 编辑器面板
- 7.2.2 在编辑器中添加事件
- 7.3 导入类动画
- 7.3.1 人形重定向动画
- 7.3.2 通用动画
- 7.3.3 老版动画
- 7.3.4 导入类动画事件
- 7.4 动画控制器
- 7.4.1 系统状态
- 7.4.2 切换条件
- 7.4.3 状态机脚本
- 7.4.4 IK动画
- 7.4.5 Root Motion
- 7.4.6 Avatar Mask
- 7.4.7 层
- 7.4.8 Blend Tree
- 7.4.9 非运行播放动画
- 7.4.10 Animator Override Controller
- 7.4.11 RuntimeAnimatorController
- 7.5 TimeLine编辑器
- 7.5.1 创建Timeline
- 7.5.2 Activation Track
- 7.5.3 Animation Track
- 7.5.4 Audio Track
- 7.5.5 Control Track
- 7.5.6 Playable Track
- 7.5.7 自定义 Track
- 7.6 Playables
- 7.6.1 播放动画
- 7.6.2 动画混合
- 7.6.3 音频混合
- 7.6.4 自定义脚本
- 7.7 Constraint
- 7.7.1 Aim Constraint
- 7.7.2 Parent Constraint
- 7.7.3 脚本控制约束
- 7.8 小结
- 第8章 持久化数据
- 8.1 Excel
- 8.1.1 EPPlus
- 8.1.2 读取Excel
- 8.1.3 写入Excel
- 8.1.4 JSON
- 8.1.5 JSON支持字典
- 8.2 文件读取与写入
- 8.2.1 PlayerPrefs
- 8.2.2 EditorPrefs
- 8.2.3 PlayerPrefs保存复杂结构
- 8.2.4 TextAsset
- 8.2.5 读写文本
- 8.2.6 运行期读写文本
- 8.2.7 PersistentDataPath目录
- 8.2.8 游戏存档
- 8.3 XML
- 8.3.1 创建XML
- 8.3.2 读取与修改
- 8.3.3 XML文件
- 8.4 YAML
- 8.4.1 YamlDotNet
- 8.4.2 序列化和反序列化
- 8.4.3 读取配置
- 8.5 小结
- 第9章 静态对象
- 9.1 Lightmap
- 9.1.1 设置烘焙贴图
- 9.1.2 实时光和焙贴光共存
- 9.1.3 灯光管理
- 9.1.4 运行时更换烘焙贴图
- 9.1.5 动态更换游戏对象
- 9.1.6 复制游戏对象
- 9.2 遮挡剔除
- 9.2.1 遮挡与被遮挡
- 9.2.2 遮挡与被遮挡事件
- 9.2.3 动态剔除
- 9.2.4 自定义遮挡剔除
- 9.3 Batching(静态合批)
- 9.3.1 设置静态合批
- 9.3.2 脚本静态合批
- 9.3.3 动态合批
- 9.3.4 静态合批的隐患
- 9.4 寻路网格
- 9.4.1 设置寻路
- 9.4.2 连接两点
- 9.4.3 获取寻路路径
- 9.4.4 动态阻挡
- 9.4.5 导出寻路网格信息
- 9.5 反射探头
- 9.6 小结
- 第10章 多媒体
- 10.1 音频
- 10.1.1 音频文件
- 10.1.2 Audio Source
- 10.1.3 3D音频
- 10.1.4 代码控制播放
- 10.1.5 混音区
- 10.1.6 Audio Mixer
- 10.1.7 录音
- 10.1.8 声音进度
- 10.2 视频
- 10.2.1 视频文件
- 10.2.2 视频渲染模式
- 10.2.3 视频自适应
- 10.2.4 UI盖在视频之上
- 10.2.5 视频渲染在材质上
- 10.2.6 视频Render Texture
- 10.2.7 播放工程外视频
- 10.2.8 自定义视频显示
- 10.2.9 视频进度
- 10.3 小结
- 第11章 资源加载与优化
- 11.1 编辑模式
- 11.1.1 加载资源
- 11.1.2 实例化Prefab
- 11.1.3 创建Prefab
- 11.1.4 更新Prefab
- 11.1.5 卸载资源
- 11.1.6 游戏对象与资源的关系
- 11.2 版本管理
- 11.2.1 .meta文件
- 11.2.2 多工程
- 11.2.3 同步文件
- 11.2.4 SVN外链
- 11.3 运行模式
- 11.3.1 引用资源
- 11.3.2 Resources
- 11.3.3 删除对象
- 11.3.4 删除资源
- 11.3.5 GC
- 11.4 AssetBundle
- 11.4.1 设置AssetBundle
- 11.4.2 依赖关系
- 11.4.3 通过脚本设置依赖关系
- 11.4.4 压缩格式
- 11.4.5 加载包体内的AssetBundle
- 11.4.6 下载AssetBundle
- 11.4.7 加载场景
- 11.4.8 卸载AssetBundle
- 11.5 游戏对象
- 11.5.1 创建游戏对象
- 11.5.2 Transform设置排序
- 11.5.3 删除节点
- 11.5.4 获取游戏对象
- 11.5.5 管理游戏组件
- 11.6 优化工具
- 11.6.1 重复无用资源
- 11.6.2 查看内存
- 11.6.3 查看CPU效率
- 11.6.4 自定义观察区间
- 11.6.5 Profiler信息的导出与导入
- 11.6.6 Frame Debugger
- 11.7 资源管理实例
- 11.7.1 特殊内置的文件夹
- 11.7.2 隐藏文件夹
- 11.7.3 Resources与AssetBundle无缝切换
- 11.7.4 资源加载策略
- 11.7.5 资源更新
- 11.7.6 资源引用关系
- 11.7.7 系统资源修改
- 11.7.8 AssetBundle里的脚本
- 11.7.9 热更新代码
- 11.8 小结
- 第12章 自动化与打包
- 12.1 资源导入
- 12.1.1 监听导入事件
- 12.1.2 自动设置贴图压缩格式
- 12.1.3 自动设置模型
- 12.1.4 禁止模型生成材质文件
- 12.1.5 删除移动资源事件
- 12.1.6 选择性自动设置
- 12.1.7 主动设置
- 12.1.8 待保存状态
- 12.1.9 自动执行MenuItem
- 12.2 配置错误
- 12.2.1 主动检查工具
- 12.2.2 被动检查工具
- 12.2.3 导出类检查工具
- 12.2.4 导出UI
- 12.2.5 生成UI代码
- 12.2.6 导出模型
- 12.2.7 不参与保存对象
- 12.2.8 导出场景
- 12.2.9 过滤无用场景
- 12.3 自动打包
- 12.3.1 打包前后事件
- 12.3.2 打包后自动压缩
- 12.3.3 用C# 调用shell脚本
- 12.3.4 等待shell结束
- 12.3.5 shell脚本调用C
- 12.3.6 shell脚本自动打包
- 12.3.7 彻底解放程序员的双手
- 12.4 自动构建图集与压缩
- 12.4.1 UI图集的压缩
- 12.4.2 非UI图集压缩
- 12.5 小结
- 第13章 3D游戏开发
- 13.1 Shader
- 13.1.1 固定渲染管线
- 13.1.2 可编程渲染管线
- 13.1.3 可编程渲染管线的表面着色器
- 13.1.4 深度排序
- 13.1.5 透明
- 13.1.6 裁切
- 13.1.7 着色器变体采集
- 13.2 摄像机
- 13.2.1 3D坐标转换屏幕坐标
- 13.2.2 3D坐标转换UI坐标
- 13.2.3 主摄像机
- 13.2.4 在UI上显示模型
- 13.2.5 Render Texture
- 13.2.6 在Render Texture上显示带特效的模型
- 13.2.7 LOD Group
- 13.3 场景管理
- 13.3.1 切换场景
- 13.3.2 DontDestroyOnLoad
- 13.3.3 异步加载场景以及进度
- 13.3.4 多场景
- 13.3.5 多场景游戏对象管理
- 13.3.6 场景切换事件
- 13.3.7 多场景烘焙
- 13.4 输入事件
- 13.4.1 全局事件
- 13.4.2 射线
- 13.4.3 点选3D模型
- 13.4.4 通过点击控制人物移动
- 13.5 物理碰撞
- 13.5.1 碰撞器
- 13.5.2 角色控制器
- 13.5.3 碰撞区域
- 13.5.4 碰撞检测
- 13.5.5 碰撞触发器
- 13.5.6 物理调试器
- 13.6 实战技巧
- 13.6.1 3D头顶文字
- 13.6.2 图文混排
- 13.6.3 图片数字
- 13.6.4 游戏对象缓存池
- 13.6.5 游戏资源缓存池
- 13.6.6 运行时合并网格
- 13.6.7 运行时合并贴图
- 13.7 小结
- 作者简介
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。