展开全部

主编推荐语

这是一本以技术讲解与项目实战为主的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 掉落宝物
展开全部

评分及书评

评分不足
2个评分

出版方

人民邮电出版社

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