5.0 用户推荐指数
计算机
类型
可以朗读
语音朗读
287千字
字数
2021-05-01
发行日期
展开全部
主编推荐语
精选丰富实践案例,精讲游戏开发技术,总结一线游戏开发经验。
内容简介
本书以游戏开发为主要线索,全面讲解Unity 3D的编程技术,涵盖Unity 3D引擎的各个系统与模块。
全书从帮助读者迅速建立脚本编程和游戏开发的框架思路开始讲起,逐步阐述Unity 3D游戏开发的核心概念,以及对游戏开发至关重要的物理系统和3D数学基础等技术基础。然后针对游戏中的界面、动画、特效与音频等Unity 3D各个常用模块的使用方法进行讲解,并详细介绍游戏开发中数据管理与资源管理相关的知识。随后通过潜入型游戏的完整案例将本书所讲知识融会贯通。最后,讲解游戏人工智能开发技术,以及对象池等高级编程技术,帮助读者提升应对实际工作的能力。
本书内容全面,讲解细致,适合游戏开发的初学者入门,也适合相关培训机构作为教材。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第1章 Unity脚本概览
- 1.1 控制物体的运动
- 1.1.1 新建脚本
- 1.1.2 Start和Update事件
- 1.1.3 修改物体位置
- 1.1.4 读取和处理输入
- 1.1.5 实例:实现一个移动的小球
- 1.2 触发器事件
- 1.2.1 创建触发器
- 1.2.2 触发器事件函数
- 1.2.3 实例:吃金币
- 1.3 制作第一个游戏:3D滚球跑酷
- 1.3.1 游戏设计
- 1.3.2 功能实现
- 1.3.3 游戏机制
- 1.3.4 完成和完善游戏
- 第2章 Unity基本概念与脚本编程
- 2.1 Unity基本概念
- 2.1.1 游戏物体和组件
- 2.1.2 变换组件
- 2.1.3 “父子关系”详解
- 2.1.4 物体的标签和层
- 2.1.5 常用组件
- 2.2 用脚本获取物体和组件
- 2.2.1 物体、组件和对象
- 2.2.2 获取组件的方法
- 2.2.3 获取物体的方法
- 2.2.4 在物体和组件之间任意遨游
- 2.2.5 利用公开变量引用物体和组件
- 2.3 用脚本创建物体
- 2.3.1 预制体
- 2.3.2 创建物体
- 2.3.3 创建组件
- 2.3.4 销毁物体或组件
- 2.3.5 定时创建和销毁物体
- 2.4 脚本的生命周期
- 2.4.1 理解脚本的生命周期
- 2.4.2 常见的事件方法
- 2.4.3 实例:跟随主角的摄像机
- 2.4.4 触发器事件
- 2.5 协程入门
- 2.6 实例:3D射击游戏
- 2.6.1 游戏总体设计
- 2.6.2 游戏的实现要点
- 2.6.3 创建主角
- 2.6.4 调整摄像机
- 2.6.5 实现武器系统和子弹
- 2.6.6 实现敌人角色
- 2.6.7 子弹击中的逻辑
- 2.6.8 完善游戏
- 2.6.9 测试和改进
- 第3章 物理系统
- 3.1 物理系统基本概念
- 3.1.1 刚体
- 3.1.2 休眠
- 3.1.3 碰撞体
- 3.1.4 物理材质
- 3.1.5 触发器
- 3.1.6 碰撞体的分类
- 3.1.7 碰撞事件表
- 3.1.8 层
- 3.1.9 物理关节
- 3.1.10 射线检测
- 3.1.11 角色控制器与物理系统
- 3.1.12 3D物理系统与2D物理系统
- 3.2 物理系统脚本编程
- 3.2.1 获取刚体组件
- 3.2.2 施加作用力
- 3.2.3 修改速度
- 3.2.4 射线的使用方法
- 3.2.5 层和层遮罩
- 3.2.6 射线编程详解
- 3.2.7 修改物理材质
- 3.2.8 FixedUpdate详解
- 3.2.9 修改角速度
- 3.2.10 质心
- 3.2.11 更多施加力的方式
- 3.2.12 刚体约束
- 3.3 实例:基于物理系统的2D平台闯关游戏
- 3.3.1 游戏设计
- 3.3.2 功能实现
- 3.3.3 游戏机制
- 3.3.4 完成和完善游戏
- 第4章 游戏开发数学基础
- 4.1 数学对游戏的重要性
- 4.2 坐标系
- 4.2.1 世界坐标系
- 4.2.2 左手坐标系与右手坐标系
- 4.2.3 局部坐标系
- 4.2.4 屏幕坐标系
- 4.3 向量
- 4.3.1 向量加法
- 4.3.2 向量减法
- 4.3.3 向量的数乘
- 4.3.4 向量的点积
- 4.3.5 向量的叉积
- 4.3.6 Vector3结构体
- 4.3.7 位置与向量的关联
- 4.3.8 向量坐标系的转换
- 4.4 矩阵简介
- 4.4.1 常用矩阵介绍
- 4.4.2 齐次坐标
- 4.5 四元数
- 4.5.1 万向节锁定
- 4.5.2 四元数的概念
- 4.5.3 Quaternion结构体
- 4.5.4 理解和运用四元数
- 4.5.5 四元数的插值
- 4.5.6 朝向与向量
- 4.6 实例:第一人称视角的角色控制器
- 4.6.1 搭建简单场景
- 4.6.2 创建主角物体
- 4.6.3 编写控制脚本——移动部分
- 4.6.4 编写控制脚本——旋转部分
- 4.6.5 隐藏并锁定鼠标指针
- 4.6.6 整理和完善
- 第5章 脚本与UI系统
- 5.1 用脚本操作常用UI控件
- 5.1.1 创建游戏界面
- 5.1.2 矩形变换(Rect Transform)组件
- 5.1.3 图片(Image)组件
- 5.1.4 文本(Text)组件
- 5.1.5 按钮(Button)组件
- 5.1.6 单选框(Toggle)组件
- 5.1.7 滑动条(Slider)组件
- 5.1.8 输入框(Input Field)组件
- 5.1.9 滚动区域(Scroll Rect)组件
- 5.2 脚本与事件系统
- 5.2.1 常用输入事件
- 5.2.2 常用输入事件的参数
- 5.2.3 动态添加事件响应方法
- 5.2.4 事件触发器(Event Trigger)
- 5.2.5 动态绑定事件的高级技巧
- 5.3 实例:界面制作与适配
- 5.3.1 设置UI画布
- 5.3.2 制作游戏界面的准备
- 5.3.3 制作游戏界面
- 5.3.4 制作背包界面
- 5.3.5 利用进度条制作血条
- 第6章 脚本与动画系统
- 6.1 动画系统基本概念
- 6.1.1 动画的基本概念
- 6.1.2 动画融合
- 6.1.3 动画状态机
- 6.1.4 根骨骼动画
- 6.2 2D动画实例分析
- 6.2.1 准备工作
- 6.2.2 角色与控制的制作步骤
- 6.2.3 动画的制作步骤
- 6.2.4 创建动画变量
- 6.2.5 设置动画过渡
- 6.2.6 用脚本修改动画变量
- 6.2.7 脚本编程重点提示
- 6.2.8 总结和拓展
- 6.3 三维模型与动画的导入
- 6.3.1 导入示例
- 6.3.2 三维模型资源设置
- 6.3.3 三维动画资源设置
- 6.3.4 模型骨骼与动画骨骼的关系
- 6.4 动画进阶技术实例分析
- 6.4.1 动画融合树
- 6.4.2 第三人称角色控制的脚本分析
- 6.4.3 根骨骼动画的运用
- 6.4.4 动画遮罩
- 6.4.5 动画层
- 6.4.6 动画帧事件
- 6.4.7 反向动力学(IK)
- 第7章 脚本与特效
- 7.1 特效总览
- 7.1.1 粒子
- 7.1.2 动画
- 7.1.3 动效
- 7.1.4 贴花
- 7.1.5 拖尾
- 7.1.6 后期处理
- 7.2 特效的使用方法
- 7.2.1 各种特效的基本使用方法
- 7.2.2 动效与缓动动画
- 7.2.3 DOTween插件使用方法简介
- 7.2.4 拖尾特效
- 7.2.5 后期处理举例
- 第8章 脚本与音频
- 8.1 音频基础概念
- 8.1.1 音源与音频侦听器
- 8.1.2 音源组件详解
- 8.2 脚本与音乐、音效
- 8.2.1 用脚本控制音乐播放
- 8.2.2 添加音效实例
- 8.2.3 音频管理器
- 第9章 脚本与资源管理
- 9.1 工程与资源
- 9.1.1 Unity项目的文件夹结构
- 9.1.2 META文件
- 9.1.3 动态加载和释放资源
- 9.2 资产包与热更新
- 9.2.1 资产包(Asset Bundles)
- 9.2.2 资源的常用路径
- 9.2.3 资产的依赖关系
- 9.2.4 从网络加载资源
- 9.2.5 热更新浅析
- 第10章 数据的保存与加载
- 10.1 脚本与序列化
- 10.1.1 序列化的概念
- 10.1.2 简单存储PlayerPrefs
- 10.2 脚本与JSON
- 10.2.1 JSON简介
- 10.2.2 安装LitJSON库
- 10.2.3 读取JSON
- 10.2.4 保存JSON
- 10.2.5 在网络中使用JSON
- 10.3 其他序列化方法
- 10.3.1 C#的序列化库
- 10.3.2 二进制序列化实例
- 10.3.3 序列化与Unity编辑器的联系
- 第11章 脚本与游戏AI
- 11.1 游戏AI综述
- 11.1.1 游戏AI的特点
- 11.1.2 常用AI技术
- 11.1.3 AI的层次
- 11.2 脚本与导航系统
- 11.2.1 导航系统相关组件
- 11.2.2 构建导航网格
- 11.2.3 创建导航代理
- 11.2.4 导航障碍物
- 11.2.5 导航链接
- 11.2.6 导航系统补充说明
- 11.2.7 导航综合实例
- 11.3 游戏AI的编程方法
- 11.3.1 有限状态机的概念
- 11.3.2 模拟AI视觉
- 11.3.3 游戏AI实例
- 11.3.4 扩展AI状态机
- 11.3.5 其他AI编程技术
- 第12章 综合实例——秘密敢死队
- 12.1 游戏设计
- 12.1.1 潜行类游戏简介
- 12.1.2 游戏总体设计
- 12.2 素材导入和场景搭建
- 12.2.1 下载并导入素材
- 12.2.2 布置场景
- 12.3 游戏主角的制作
- 12.3.1 创建角色
- 12.3.2 创建动画
- 12.3.3 实现角色移动
- 12.3.4 切换武器和道具
- 12.3.5 添加武器挂点
- 12.3.6 实现武器和道具的基本功能
- 12.3.7 武器和道具的控制
- 12.3.8 完善主角动画
- 12.3.9 完善主角游戏逻辑
- 12.3.10 实现抛物线指示器
- 12.4 敌人角色的制作
- 12.4.1 创建敌人角色和动画
- 12.4.2 敌人角色脚本框架
- 12.4.3 实现巡逻逻辑
- 12.4.4 实现视觉感知
- 12.4.5 实现追击功能
- 12.4.6 实现攻击功能
- 12.4.7 组合并实现完整的AI角色
- 12.4.8 敌人的参数设置
- 12.5 搭建关卡并完善游戏
- 12.5.1 关卡设计的示例
- 12.5.2 添加成功和失败的逻辑
- 第13章 进阶编程技术
- 13.1 对象池
- 13.1.1 为什么要使用对象池
- 13.1.2 简易对象池实例
- 13.1.3 对象池测试方法
- 13.1.4 性能分析器
- 13.1.5 支持多种物体的对象池
- 13.2 Unity协程详解
- 13.2.1 熟悉而陌生的协程
- 13.2.2 迭代器
- 13.2.3 协程的延时执行原理
- 13.2.4 协程与递归
- 13.3 Unity事件详解
- 13.3.1 Unity事件实例
- 13.3.2 Unity事件的多参数形式
- 13.3.3 Unity事件与委托
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。