1.本书是一本以技术讲解与项目实战为主的Unity游戏发教程,以简洁的语言讲解Unity的重知识; 2.“理论 实战”,详细图文注释配合大量实战案例,为初级门读者和中级提升的读者提供系统、细致的内容; 3.随书附赠案例素材文件、1020分钟案例教学视频以及300多分钟的C#门视频。
售 价:¥
纸质售价:¥64.90购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
扉页
内容提要
精彩案例展示
精彩瞬间
导读
前言
资源与支持
第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 掉落宝物
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜