展开全部

主编推荐语

精选丰富实践案例,精讲游戏开发技术,总结一线游戏开发经验。

内容简介

本书以游戏开发为主要线索,全面讲解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事件与委托
展开全部

评分及书评

评分不足
2个评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。