计算机
类型
8.4
豆瓣评分
可以朗读
语音朗读
260千字
字数
2021-10-01
发行日期
展开全部
主编推荐语
这是一本以技术讲解与项目实战为主的Unity游戏开发教程图书。
内容简介
本书以简洁明快的语言对Unity的重点知识进行了讲解,配合详细的图文注释和大量的项目实例,让读者能够轻松快速地入门Unity,同时在本书后面的章节中也包含了很多游戏编程中的进阶知识,可供基础较好的读者进行拓展。另外,本书还为每个章节中的项目实战提供了配套视频,视频中通过讲解项目实战来详细讲解每章的重点知识,以便读者更加轻松地入门。
全书共16章。第1~4章为Unity基础部分,主要介绍Unity的基础操作和与编程相关的知识;第5~10章为Unity进阶部分,主要按照“物理系统→粒子系统→动画系统→导航系统→游戏界面系统→2D游戏开发”这一流程介绍Unity游戏开发的核心技术和思路;第11~15章为Unity拓展部分,主要介绍数据网络、AR和VR等高级技术的使用;第16章为3D游戏开发综合实例,让读者以一个完整的实战项目来结束本书的学习。
本书既面向初学者,又为具备Unity基础而想更进一步学习或是需要一本Unity工具书查询的读者提供了便捷的渠道。全书内容均采用Unity 2020和Visual Studio 2019编写,请读者使用同样或更高的版本学习。
目录
- 版权信息
- 内容提要
- 精彩案例展示
- 精彩瞬间
- 导读
- 前言
- 资源与支持
- 第1章 基础知识
- 1.1 游戏引擎
- 1.1.1 认识游戏引擎
- 1.1.2 Unity的优势
- 1.2 下载与安装
- 1.2.1 Unity Hub的下载与安装
- 1.2.2 Visual Studio的下载与安装
- 1.3 认识编辑器
- 1.3.1 设置脚本编辑器与语言
- 1.3.2 了解编辑器结构
- 1.3.3 管理项目文件
- 1.3.4 管理游戏物体
- 1.3.5 游戏场景设置
- 1.3.6 预览游戏
- 1.3.7 管理“控制台”面板
- 第2章 打造3D游戏世界
- 2.1 操控物体
- 2.1.1 了解3D坐标系
- 2.1.2 世界坐标系与本地坐标系
- 2.1.3 创建实物
- 2.1.4 物体中心点
- 2.1.5 物体的操作
- 实例:制作电脑桌
- 2.2 3D模型
- 2.2.1 网格
- 2.2.2 材质
- 2.2.3 资源商店
- 实例:导入商店资源
- 2.3 3D场景元素
- 2.3.1 地形
- 技术专题:绘制纹理
- 技术专题:抬高地面
- 2.3.2 树木
- 2.3.3 草细节
- 2.3.4 水效果
- 2.4 综合案例:打造野外风景
- 2.4.1 游戏描述
- 2.4.2 创建地形
- 2.4.3 绘制地表
- 2.4.4 添加植被和河流
- 2.4.5 角色预览
- 第3章 游戏脚本基础
- 3.1 第一个组件脚本
- 3.1.1 什么是组件
- 3.1.2 组件脚本的创建
- 3.1.3 组件的使用
- 技术专题:区分两种粘贴组件的方式
- 3.1.4 脚本的生命周期
- 3.1.5 多个脚本的执行顺序
- 3.2 游戏物体
- 3.2.1 物体名称和激活状态
- 3.2.2 给物体设定一个标签
- 3.2.3 给物体设定一个图层
- 3.3 线性代数
- 3.3.1 标量与向量
- 3.3.2 向量的加法
- 3.3.3 向量的减法
- 3.3.4 点乘获取夹角角度
- 3.3.5 叉乘获取平面垂直向量
- 3.4 预制件的创建与使用
- 3.4.1 创建预制件
- 3.4.2 编辑预制件
- 3.4.3 添加组件与子物体
- 3.4.4 预制件变体
- 操作演示:搭建像素游戏场景
- 3.5 游戏常用API
- 3.5.1 Vector3常用属性方法
- 3.5.2 Quaternion常用属性方法
- 3.5.3 Debug常用属性方法
- 操作演示:调试示例
- 3.5.4 GameObject常用属性方法
- 技术专题:区分activeInHierarchy和activeSelf
- 3.5.5 Time常用属性方法
- 3.5.6 Mathf常用属性方法
- 3.5.7 Application 常用属性方法
- 3.5.8 Scene常用属性方法
- 3.5.9 Transform常用属性方法
- 技术专题:区分Transform与Vector3中的向量
- 3.6 输入控制
- 3.6.1 键盘和鼠标
- 3.6.2 虚拟轴
- 3.6.3 手机触摸
- 实例:虚拟轴的使用
- 3.7 综合案例:爆破人
- 3.7.1 游戏描述
- 3.7.2 项目准备
- 3.7.3 角色控制
- 3.7.4 放置炸弹
- 3.7.5 安排敌人
- 3.7.6 释放炸弹
- 3.7.7 摄像机跟随
- 第4章 游戏场景
- 4.1 场景灯光
- 4.1.1 巧用各式灯光
- 4.1.2 光照烘焙
- 操作演示:制作游戏夜晚场景
- 4.2 场景摄像机
- 4.2.1 选择合适的摄像机
- 4.2.2 透视摄像机与正交摄像机
- 4.2.3 摄像机的显示设置
- 技术专题:摄像机深度可以呈现的效果
- 技术专题:目标纹理的使用
- 4.3 多媒体应用
- 4.3.1 为角色添加耳朵
- 4.3.2 为场景添加音频源
- 4.3.3 通过脚本控制音频效果
- 实例:控制音频的播放和暂停
- 4.3.4 完成视频的播放
- 实例:播放电视画面
- 4.4 玩家角色控制
- 4.4.1 角色控制器
- 4.4.2 通过脚本控制角色移动
- 技术专题:判断角色控制器是否位于地面
- 4.5 综合案例:寻宝游戏
- 4.5.1 游戏描述
- 4.5.2 项目准备
- 4.5.3 播放背景音乐
- 4.5.4 创建金币特效
- 4.5.5 编写宝箱脚本
- 第5章 物理系统
- 5.1 给物体添加重力
- 5.1.1 重力与刚体
- 5.1.2 刚体类常用的属性方法
- 技术专题:刚体休眠原理
- 操作演示:通过刚体控制球体运动
- 5.2 给物理世界添加碰撞
- 5.2.1 墙体的碰撞
- 5.2.2 球体碰撞器
- 5.2.3 胶囊碰撞器
- 5.2.4 地形碰撞器
- 5.2.5 网格碰撞器
- 操作演示:制作简易赛车
- 5.3 物理关节与材质
- 5.3.1 铰链关节
- 操作演示:通过铰链关节控制门的转动
- 5.3.2 弹簧关节
- 5.3.3 固定关节
- 5.3.4 物理材质
- 5.4 碰撞与触发检测
- 5.4.1 碰撞检测
- 5.4.2 触发检测
- 实例:逃脱游戏
- 5.5 可以碰撞的射线
- 5.5.1 射线碰撞检测
- 5.5.2 射线多碰撞检测
- 技术专题:射线与图层的碰撞
- 实例:点亮和熄灭蜡烛
- 5.6 综合案例:飞船大战
- 5.6.1 游戏描述
- 5.6.2 导入玩家飞船
- 5.6.3 移动飞船
- 5.6.4 天空环境
- 5.6.5 导入敌人飞船
- 5.6.6 生成敌机
- 5.6.7 添加玩家攻击
- 第6章 粒子系统
- 6.1 粒子系统的使用
- 6.1.1 添加粒子系统
- 6.1.2 粒子系统的基本属性
- 6.2 粒子的效果设置
- 6.2.1 粒子发射器
- 6.2.2 发射器形状
- 6.2.3 粒子渲染效果
- 6.2.4 粒子速度
- 6.2.5 粒子颜色、大小与旋转
- 技术专题:粒子的渐变调节
- 技术专题:粒子的形态调节
- 实例:制作烟花效果
- 6.2.6 其他功能模块
- 实例:制作火焰雨技能效果
- 6.3 线条效果
- 6.3.1 线段渲染器
- 操作演示:使用脚本绘制动态线条
- 实例:模拟画图
- 6.3.2 拖尾渲染器
- 操作演示:使用脚本制作拖尾旋转效果
- 6.4 综合案例:魔法大战
- 6.4.1 游戏描述
- 6.4.2 创建项目
- 6.4.3 角色控制
- 6.4.4 编写魔法脚本
- 6.4.5 敌人孵化点
- 6.4.6 编写敌人脚本
- 第7章 动画系统
- 7.1 动画
- 7.1.1 动画组件
- 7.1.2 通过属性制作动画
- 技术专题:添加关键帧的另外3种方式
- 7.1.3 通过动画曲线控制平滑效果
- 技术专题:动画曲线的操作
- 7.1.4 执行一个帧事件
- 操作演示:制作门的开关动画
- 7.2 动画器
- 7.2.1 动画器组件
- 7.2.2 动画控制器
- 7.2.3 使用脚本切换动画
- 操作演示:使用脚本控制跑步动画
- 7.2.4 动画剪辑常用属性
- 7.2.5 编辑动画曲线
- 7.2.6 Animator帧事件
- 7.2.7 混合动画
- 7.2.8 动画层
- 技术专题:状态机的嵌套
- 7.2.9 Avatar遮罩
- 实例:播放混合动画
- 7.2.10 反向动力学
- 实例:动作游戏动画的切换
- 7.3 综合案例:潜入游戏
- 7.3.1 游戏描述
- 7.3.2 创建项目
- 7.3.3 制作角色动画
- 7.3.4 添加敌人
- 7.3.5 添加终点
- 第8章 导航系统
- 8.1 导航网格区域
- 8.1.1 生成导航网格
- 技术专题:导航静态设置
- 8.1.2 导航烘焙属性
- 8.2 导航代理
- 8.2.1 导航网格代理
- 8.2.2 添加障碍物
- 技术专题:障碍物的网格切割
- 操作演示:躲避障碍物
- 8.3 设置导航网格链接
- 8.3.1 代理角色的掉落高度与跳跃距离
- 8.3.2 导航网格链接
- 8.4 设置导航区域
- 8.4.1 设置模拟区域
- 8.4.2 设置区域成本
- 操作演示:河流导航区域
- 实例:穿越斑马线
- 8.5 综合案例:塔防游戏
- 8.5.1 游戏描述
- 8.5.2 创建炮台和地板
- 8.5.3 设置敌人进攻路线
- 8.5.4 创建敌人孵化器
- 8.5.5 创建炮弹
- 8.5.6 设置炮台
- 8.5.7 完善场景
- 第9章 游戏界面系统
- 9.1 了解UI基础控件
- 9.1.1 创建一个画布
- 9.1.2 控制UI控件的位置布局
- 操作演示:界面自适应布局
- 9.2 常用UI控件
- 9.2.1 图像
- 技术专题:制作九宫格图片
- 9.2.2 各类文本
- 技术专题:增加文本效果
- 9.2.3 按钮
- 9.2.4 文本框
- 9.2.5 选项
- 技术专题:制作复选框
- 9.2.6 下拉列表框
- 技术专题:用脚本设置球类运动项目
- 9.2.7 滚动视图
- 技术专题:制作滚动视图
- 9.2.8 滑动条
- 9.2.9 面板
- 实例:游戏主界面的应用
- 9.3 常用UI组件
- 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 切换人物及背景
- 第10章 2D游戏开发
- 10.1 制作2D游戏
- 10.1.1 创建2D项目
- 10.1.2 创建精灵
- 10.2 瓦片地图
- 10.2.1 创建瓦片地图
- 技术专题:切片的3种类型
- 10.2.2 绘制瓦片地图
- 操作演示:绘制花园
- 10.3 2D物理与动画
- 10.3.1 精灵刚体与碰撞
- 技术专题:放大游戏物体后如何不失真
- 技术专题:冻结角色旋转
- 10.3.2 瓦片地图碰撞器
- 10.3.3 2D动画
- 实例:跳一跳
- 10.4 综合案例:小岛历险记
- 10.4.1 游戏描述
- 10.4.2 冒险小岛
- 10.4.3 添加角色
- 10.4.4 吃果实得分
- 第11章 游戏中的数据与网络
- 11.1 常用数据格式
- 11.1.1 轻量数据格式JSON
- 11.1.2 可扩展标记语言XML
- 11.1.3 CSV与Excel
- 实例:制作物品数据
- 11.1.4 SQLite
- 实例:操作数据库
- 11.2 多线程
- 11.2.1 多线程的使用
- 11.2.2 协程的使用
- 11.3 网络请求的使用
- 11.3.1 网络请求
- 11.3.2 搭建简易服务器
- 11.3.3 网络请求的基本使用方法
- 11.3.4 Socket与TCP/IP
- 实例:Socket通信
- 11.4 综合案例:登录请求
- 11.4.1 项目描述
- 11.4.2 搭建服务器
- 11.4.3 添加登录UI控件
- 11.4.4 创建登录界面
- 11.4.5 解析登录数据
- 第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.4 定义一种观察者模式
- 12.4.1 理解观察者模式
- 12.4.2 非观察者模式代码示例
- 实例:观察者模式的代码实现
- 12.5 创建多对象的推荐方式
- 12.5.1 理解工厂模式
- 12.5.2 非工厂模式代码示例
- 实例:工厂模式的代码实现
- 12.6 综合案例:简易消息框架
- 12.6.1 项目描述
- 12.6.2 消息基类
- 12.6.3 音频管理类
- 12.6.4 物品管理类
- 12.6.5 框架测试
- 第13章 Lua与人工智能
- 13.1 游戏领域的热门语言
- 13.1.1 Lua脚本语言
- 13.1.2 xLua的使用
- 实例:使用xLua实现热修复
- 13.2 人工智能
- 13.2.1 模拟视觉感知
- 13.2.2 有限状态机
- 实例:有限状态机的实现
- 13.3 综合案例:NPC智能巡逻
- 13.3.1 游戏描述
- 13.3.2 迷宫初成
- 13.3.3 NPC动画
- 13.3.4 NPC巡逻
- 第14章 虚拟现实与增强现实
- 14.1 增强现实
- 14.1.1 增强现实
- 14.1.2 Vuforia
- 实例:在Unity中使用Vuforia
- 14.2 虚拟现实
- 14.2.1 VR环境搭建
- 14.2.2 进入VR世界
- 实例:Unity在VR世界中的应用
- 14.3 综合案例:VR保龄球
- 14.3.1 游戏描述
- 14.3.2 VR可视化
- 14.3.3 抓取与投掷
- 14.3.4 持续生成
- 14.3.5 自动更新
- 第15章 项目部署
- 15.1 使用AssetBundle管理资源
- 15.1.1 生成AssetBundle
- 15.1.2 使用AssetBundle加载资源
- 15.1.3 使用AssetBundle加载依赖
- 15.2 游戏部署
- 15.2.1 打包设置
- 15.2.2 Windows和Mac平台部署
- 15.2.3 Android平台部署
- 技术专题:安装Android或iOS模块
- 15.2.4 iOS平台部署
- 15.3 综合案例:Android平台的部署
- 15.3.1 项目描述
- 15.3.2 部署准备
- 15.3.3 部署设置
- 技术专题:按顺序显示两个启动Logo
- 15.3.4 打包APK
- 第16章 综合案例:角色扮演游戏
- 16.1 圣域之战
- 16.1.1 玩法介绍
- 16.1.2 实现路径
- 16.2 古老的亚特拉斯帝国
- 16.2.1 帝国崛起
- 16.2.2 歌声悠扬
- 16.3 主角:新手上路
- 16.3.1 游览新手村
- 16.3.2 活动身手
- 16.4 任务:击杀两个石头人
- 16.4.1 解析任务数据
- 16.4.2 管理任务数据
- 16.5 注意:出现敌人
- 16.5.1 敌人靠近
- 16.5.2 敌人孵化器
- 16.6 紧急:血量减少
- 16.6.1 满血血条
- 16.6.2 更新血条
- 16.7 对话:找到玛尔
- 16.7.1 任务UI
- 16.7.2 接受任务
- 16.8 攻击:释放技能
- 16.8.1 技能特效
- 16.8.2 伤害值
- 16.8.3 掉落宝物
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。