《Unity 5实战》简介:
编辑推荐
《Unity 5实战:使用C#和Unity开发多平台游戏》教授你如何编写和部署游戏。你将从头开始掌握Unity的工具集,书中介绍了从应用编码者到游戏开发者所需的技能。每个示例项目都阐述了特定的Unity特性和游戏开发策略。阅读完《Unity 5实战:使用C#和Unity开发多平台游戏》内容和完成书中练习后,你将掌握创建生动的基于2D和3D驱动的游戏应用的各方面技能。《Unity 5实战:使用C#和Unity开发多平台游戏》主要内容:编写跑动、跳跃和交互的角色;构建管理游戏状态的代码架构;将游戏连接到互联网以下载动态数据;将游戏部署到平台(包括网页和移动等);涵盖Unity 5.0。
《Unity 5实战》目录:
目录
第Ⅰ部分起步
第1章初识Unity
1.1为什么Unity如此优秀
1.1.1Unity的优势
1.1.2要意识到的缺点
1.1.3使用Unity构建的游戏案例
1.2如何使用Unity
1.2.1Scene视图、Game视图和工具栏
1.2.2使用鼠标和键盘
1.2.3Hierarchy标签和Inspector
1.2.4Project和Console标签
1.3开始使用Unity编程
1.3.1代码在Unity中是如何运行的:脚本组件
1.3.2使用MonoDevelop,跨平台的DE
1.3.3打印到控制台:HelloWbrld!
1.4小结
第2章构建一个让你置身3D空间的演示
2.1在开始之前
2.1.1对项目做计划
2.1.2了解3D坐标空间
2.2开始项目:在场景中放置对象
2.2.1第二步:地板、外墙和内墙
2.2.2灯光和摄像机
2.2.3玩家的碰撞器和视口
2.3让东西移动:应用变换的脚本
2.3.1图示说明如何通过编程实现旋转
2.3.2编写代码实现图中演示的运动
2.3.3本地和全局坐标空间
2.4用于观察周围的组件脚本:MouseLook
2.4.1跟踪鼠标运动的水平旋转
2.4.2在一定范围内的垂直旋转
2.4.3同时水平和垂直旋转
2.5键盘输入组件:第一人称控件
2.5.1响应按下的键
2.5.2设置独立于计算机运行速度的运动速率
2.5.3为了碰撞检测,移动CharacterController
2.5.4调整组件为走路而不是飞翔
2.6小结
第3章为3D游戏添加敌人和子弹
3.1通过射线射击
3.1.1什么是射线发射
3.1.2使用命令ScreenPointToRay来发射
3.1.3为准心和击中点添加可视化提示
3.2脚本化反应的目标
3.2.1确定被击中的对象
3.2.2警告目标它被击中
3.3基本漫游AI
3.3.1图解基础AI的工作原理
3.3.2使用射线发射发现障碍物
3.3.3跟踪角色状态
3.4产生敌人预设
3.4.1什么是预设
3.4.2创建敌人预设
3.4.3在不可见的SceneController中实例化
3.5通过实例化对象进行射击
3.5.1创建子弹预设
3.5.2发射子弹并和目标碰撞
3.5.3伤害玩家
3.6小结
第4章为游戏开发图形
4.1了解美术资源
4.2构建基础3D场景:白盒
4.2.1白盒的解释
4.2.2为关卡绘制地板平面图
4.2.3根据平面图布局几何体
4.3使用2D图像给场景贴图
4.3.1选择文件格式
4.3.2导入图像文件
4.3.3应用图像
4.4使用贴图图像产生天空视觉效果
4.4.1什么是天空盒
4.4.2创建一个新天空盒材质
4.5使用自定义3D模型
4.5.1选择文件格式
4.5.2导出和导入模型
4.6使用粒子系统创建效果
4.6.1调整默认效果的参数
4.6.2为火焰应用新贴图
4.6.3将粒子效果附加到3D对象上
4.7小结
第Ⅱ部分轻松工作
第5章使用Unity新的2D功能构建一款记忆力游戏
5.1设置2D图形
5.1.1为项目做准备
5.1.2显示2D图像(亦称精灵)
5.1.3将摄像机切换为2D模式
5.2构建卡片对象并让它响应单击
5.2.1从精灵构建对象
5.2.2鼠标输入代码
5.2.3当单击时显示卡片
5.3显示不同的卡片图像
5.3.1通过程序加载图像
5.3.2通过不可见的SceneController来设置图像
5.3.3实例化一个网格的卡片
5.3.4打乱卡片
5.4实现匹配和匹配得分
5.4.1保存并比较翻开的卡片
5.4.2隐藏错误卡片
5.4.3显示积分的文本
5.5重启按钮
5.5.1使用SendMessage编写UIButton组件
5.5.2从SceneController中调用LoadLevel
5.6小结
第6章在3D游戏中放置2D图形用户界面
6.1在开始写代码之前
6.1.1直接模式GUI还是高级2D界面
6.1.2规划布局
6.1.3导入UI图像
6.2设置GUI显示
6.2.1为界面创建画布
6.2.2按钮、图像和文本标签
6.2.3控制UI元素的位置
6.3编写UI中的交互
6.3.1编写不可见的UIController
6.3.2创建弹出窗口
6.3.3使用滑动条和输入域设置值
6.4通过响应事件更新游戏
6.4.1集成事件系统
6.4.2从场景中广播和侦听事件
6.4.3从HUD广播和侦听事件
6.5小结
第7章创建第三人称3D游戏:玩家移动和动画
7.1调整摄像机视图为第三人称视角
7.1.1导入一个用于观察的角色
7.1.2将阴影添加到场景
7.1.3摄像机环绕玩家角色
7.2编写程序控制camera—relative的移动
7.2.1旋转角色,以朝向移动方向
7.2.2朝着方向向前移动
7.3实现跳跃动作
7.3.1应用垂直速度和加速度
7.3.2修改地面检测来处理边缘和斜坡
7.4设置玩家角色上的动画
7.4.1在导入的模型上定义动画剪辑
7.4.2为动画创建动画控制器
7.4.3编写操作Animator组件的代码
7.5小结
第8章在游戏中添加交互设施和物件
8.1创建门和其他设施
8.1.1由按键控制开/关的门
8.1.2在开门之前检查距离和朝向
8.1.3创建一个变色监控器
8.2通过碰撞与对象交互
8.2.1和具有物理功能的障碍物碰撞
8.2.2用一个压力板来触发门
8.2.3收集当前关卡游戏中分散的物件
8.3管理仓库数据和游戏状态
8.3.1设置玩家和仓库管理器
8.3.2编程实现游戏管理器
8.3.3把物品存储在集合对象中:List与Dictionary
8.4使用和装备物品的仓库UI
8.4.1在UI中显示仓库物品
8.4.2装备一个用来开门的钥匙
8.4.3通过使用血量包来恢复玩家的血量
8.5小结
第Ⅲ部分冲刺阶段
第9章将游戏连接到互联网
9.1创建户外场景
9.1.1使用天空盒生成天空视觉效果
9.1.2通过代码设置大气环境
9.2从互联网服务下载天气数据
9.2.1使用协程请求WWW数据
9.2.2解析XML
9.2.3解析JSON
9.2.4基于天气数据影响场景
9.3添加一个网络布告栏
9.3.1从互联网加载图像
9.3.2在布告栏上显示图像
9.3.3缓存下载的图像以供重用
9.4将数据发送到Web服务器
9.4.1跟踪当前的天气:发送post请求
9.4.2PHP中的服务器端代码
9.5小结
第10章播放音频:音效和音乐
10.1导入音效
10.1.1所支持的文件格式
10.1.2导入音频文件
10.2播放音效
10.2.1音频剪辑、音源和声音侦听器
10.2.2设定一个循环声音
10.2.3从代码触发音效
10.3音频控制接口
10.3.1建立中心AudioManager
10.3.2音量控制UI
10.3.3播放UI声音
10.4背景音乐
10.4.1播放循环音乐
10.4.2独立控制音乐的音量
10.4.3歌曲间的淡入淡出
10.5小结
第11章将各部分整合为一个完整的游戏
11.1再次利用项目来构建角色扮演RPG
11.1.1将多个项目的资源和代码装配在一起
11.1.2编写指向单击的控件:移动和设备
11.1.3使用新界面替换旧GUI
11.2开发总体的游戏结构
11.2.1控制任务流和多关卡
11.2.2通过到达退出条件完成一个关卡
11.2.3当被敌人捕捉时关卡失败
11.3处理玩家游戏过程中的进度
11.3.1保存并加载玩家进度
11.3.2通过完成三个关卡打败游戏
11.4小结
第12章将游戏部署到玩家的设备
12.1构建桌面环境:Windows、Mac和Linux
12.1.1构建应用
12.1.2调整Player Settings:设置游戏的名称和图标
12.1.3平台依赖的编译
12.2为Web构建游戏
12.2.1Unity Player和HTMUWebGL
12.2.2构建Unity文件和一个测试Web页面
12.2.3与浏览器中的JavaScript通信
12.3构建移动应用的平台:iOS和Android
12.3.1设置构建工具
12.3.2贴图压缩
12.3.3开发插件
12.4小结
附录A场景导航和键盘快捷键
A.1使用鼠标进行场景导航
A.2一般使用键盘快捷键
附录B与Unity一同使用的外部工具
B.1编程工具
B.1.1Visual Studio
B.1.2Xcode
B.1.3Android SDK
B.1.4SVN、Git或Mercurial
B.23D美术应用
B.2.1Maya
B.2.23dsMax
B.2.3Blender
B.32D图像编辑器
B.3.1Photoshop
B.3.2GMP
B.3.311exturePacker
B.4音频软件
B.4.1Pro Tools
B.4.2Audacity
附录C在Blender中建模一个板凳
C.1构建网格几何体
C.2模型贴图映射
附录D在线学习资源
D.1附加的指南
D.2代码库
后序
· · · · · ·