描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787111377191
本书结合Unity这种多平台的集成引擎和编辑器,介绍如何使用Unity创建游戏、添加交互性,以及修饰游戏并发布游戏的所有知识。本书分为五部分,每一章都介绍一个独立的概念,并且循序渐进地讲述新的概念,还使用一个综合的游戏项目贯穿全书。在本书中,读者将学到所有重要的界面命令,如何设置和组织项目,以及创建并运行一个3D游戏的所有基础,从角色导入到脚本,再到声音。本书还将介绍基本的游戏和关卡设计理论与特殊的技巧。
本书为读者提供了使用Unity来创建自己的游戏所需要的全面信息,适合业余游戏制作人、专业开发人员以及计算机专业的学生阅读。
译者序
作者简介
部分入门
第1章序
第2章前言
2.1本书主要内容
2.2本书读者对象
2.3本书结构
2.4安装说明
2.4.1Unity引擎
2.4.2使用光盘里的内容
2.4.3可选安装
第3章Unity引擎概览
3.1熟悉界面
3.1.1Project视图
3.1.2Hierarchy视图
3.1.3Inspector视图
3.1.4工具栏
3.1.5Scene视图
3.1.6Game视图
3.1.7Animation视图
3.1.8控制台和状态栏
3.1.9性能分析器和资源服务器
3.1.10定制编辑器
3.2Unity的基本概念
3.3可用的Unity许可证
3.4编辑器小结
第4章款游戏:从哪里开始
4.1基本设计理论
4.2找到核心思想
4.2.1头脑风暴
4.2.2研究其他的游戏
4.2.3纸面原型:这并不仅仅适用于商业软件
4.3进行计划
4.3.1基本的大纲
4.3.2一个简单的关卡文档
4.4开始
第二部分收集游戏资源
第5章用地形搭建舞台
5.1Unity的地形引擎
5.2定制地形
5.2.1使用高度图来创建高度
5.2.2使用笔刷来绘制高度
5.2.3绘制贴图
5.2.4放置树木
5.2.5使用草以及细节网格让场景变得更为散乱
5.2.6地形设置
5.3光照和阴影
5.4添加天空盒和基于距离的雾化效果
5.5在地形上加入水体
第6章创建环境:导入基本的定制资源
6.1先设计,后创建
6.2导入贴图
6.2.1关于导入的更多细节
6.2.2支持的格式
6.2.3为《Widget》的地形导入贴图
6.3导入基本网格
6.4设置简单的着色器和材质
6.4.1Unity提供的着色器
6.4.2凹凸贴图、高光贴图、立方环境贴图和细节贴图
6.4.3指定着色器和材质
6.4.4创建一种定制的天空盒材质
6.4.5添加水体
6.5使用资源时的有用技巧
6.5.1预制模型
6.5.2大规模对象选择和分组
6.5.3根据网格对齐
6.5.4重做地形
第7章创建角色
7.1玩家角色基础
7.2导入角色以及其他非静态网格
第三部分用交互性使道具更逼真
第8章Unity中的脚本编程
8.1一个编辑器、三种语言、大量的选择
8.2选择一个脚本编辑器,你是否想要它实现自动完成
8.3Unity脚本编程基础
8.4运算符和比较
8.4.1运算符
8.4.2比较
8.5条件
8.5.1if语句
8.5.2if.else语句
8.5.3switch语句
8.5.4条件运算符
8.6循环
8.6.1for循环
8.6.2while循环
8.7函数
8.8命名约定
第9章编写角色和状态控制脚本
9.1计划和设计
9.2一个简单的第三人称控制器
9.2.1控制器变量
9.2.2Unity的MonoBehaviour类
9.2.3FixedUpdate:让Widget移动
9.3设置Unity的输入管理器
9.3.1Input类回顾
9.3.2轴的命名约定
9.3.3Xbox风格控制器的设置示例
9.4连接摄像机
9.5装配状态控制器
9.5.1协程
9.5.2更新角色控制器
9.6完整的脚本
9.6.1Widget_Controller.js
9.6.2Widget_Status.js
9.6.3Widget_Camera.js
第10章连接动画
10.1Unity中的动画
10.2动画API
10.3设置玩家控制器的动画
10.3.1定义问题
10.3.2更新控制器
10.3.3创建动画状态管理器
10.4在Unity内部创建动画
10.4.1一些基本概念
10.4.2Animation视图
10.5设置一段新的动画剪辑
10.5.1创建定制动画
10.5.2连接
10.6添加动画事件
10.7完整的脚本
10.7.1Widget_Controller.js更新
10.7.2Widget_Animation.js
第11章使用触发器并创建环境交互
11.1触发器和碰撞
11.2设置一个简单的触发器对象
11.2.1为了清晰而使用gizmo
11.2.2背囊管理
11.3设置其他类型的触发器
11.3.1死亡触发器
11.3.2检查点——避免死亡的触发器
11.4完成的脚本
11.4.1PickupItems.js
11.4.2Widget_Inventory.js
11.4.3DamageTrigger.js
11.4.4CheckPoint.js
11.4.5Widget_Status.js
第12章创建探险和AI
12.1人工智能:人工、没多少智能
12.1.1一些简单的AI指导方针
12.1.2简单的工作流
12.2设置一个简单的敌人
12.2.1AI控制器
12.2.2为一只简单的小兔子编写的简单的状态管理器
12.3设置Widget的攻击
12.4在完成任务后奖励玩家
12.5产生和优化
12.6完整代码
12.6.1EBunny_AIController.js
12.6.2EBunny_Status.js
12.6.3Widget_AttackController.js
12.6.4Enemy_RespawnPoint.js
第13章设计游戏的GUI
13.1基本的界面理论
13.1.1交互的步骤
13.1.2为用户设计
13.2Unity的GUI系统
13.2.1按钮
13.2.2滑块
13.2.3标签和框
13.2.4文本输入
13.2.5Toggle
13.2.6工具栏和选择矩阵
13.2.7窗口
13.3为Widget制作定制的皮肤
13.3.1创建GUISkin
13.3.2定义定制风格
13.3.3导入新字体
13.4设置HUD
13.4.1GUIContent
13.4.2角色显示
13.4.3分辨率
13.5弹出屏幕示例
13.6添加全屏菜单
13.7完整和更新的脚本
13.7.1GUI_CustomControls.js
13.7.2GUI_HUD.js
13.7.3Widget_AttackController.js
13.7.4EBunny_Status.js
13.7.5GUI_WaypointStore.js
13.7.6WaypointBehavior.js
13.7.7GUI_MainMenu.js
第四部分完善和后的修饰
第14章创建光影
14.1灯光的类型
14.1.1光源属性
14.1.2光照基础
14.2照亮游戏世界
14.3创建阴影
14.3.1光照图
14.3.2使用阴影投射器制作的阴影
14.4其他光照效果
14.4.1镜头眩光
14.4.2遮光
第15章使用粒子系统
15.1粒子:从烟到星尘
15.2设置一个简单的系统
15.2.1粒子发射器
15.2.2粒子动画器
15.2.3粒子渲染器和材质
15.3高级粒子组件
15.3.1世界粒子碰撞体
15.3.2拖尾渲染器
15.3.3线条渲染器
15.4Widget的粒子
15.4.1拾取物品
15.4.2检查点激活
15.4.3Widget的攻击
15.4.4敌人爆炸
15.5更新的脚本
15.5.1PickupItems.js
15.5.2CheckPoint.js
15.5.3Widget_AttackController.js
15.5.4EBunny_Status.js
第16章加入声音和音乐
16.1反馈和环境
16.2设置一段简单的声音剪辑
16.2.1环境音效
16.2.2通过脚本控制声音
16.2.3加入背景音乐
16.3更新的脚本
第五部分发行和发布版本
第17章基本的Unity调试和优化
17.1Unity中的调试
17.1.1Console
17.1.2日志文件
17.2优化
17.2.1Profiler
17.2.2基本代码优化
17.2.3模拟
17.2.4渲染Statistics页面
17.2.5压缩文件
17.2.6优化图形的其他方式
第18章创建终版本
18.1准备版本
18.1.1设置播放器
18.1.2设置Application类
18.1.3版本设置
18.2其他版本特性
18.2.1新的资源和DLC
18.2.2打包资源以便今后使用
18.3展望
部分入门
第1章序
收件箱和电子邮件
温斯顿·丘吉尔曾经说过:“写一本书就是一次冒险。开始的时候,它是一种玩具和消遣;随后,它就变成了一位家庭主妇,然后它变成了你的主人,后它变成了一位暴君。在后的阶段,你不甘心再被奴役,你杀死了这个怪物并且将它抛给公众。”我要向这位伟人致敬,论及写书,再没有比这更全面而真实的话了。
那些不为人知的英雄,在寂静的乡村安居,被召唤着踏上冒险的旅途;就像他们一样,我突然收到我以前的导师Brenda
Brathwaite的一封E?mail,询问我是否想要写一本书。怀着期待而紧张的心情,带着不可思议的幼稚和愚昧,我欣然同意了。我以前曾经写过100多页的文稿,有一些空闲的时间,这事儿能有多难呢?化犁为笔,我开始了本以为相当轻松愉快的穿越丛林之旅。
可是,我不得不承认,我大错特错了。
初,本书主要介绍使用Microsoft的Popfly Game
Creator作为学习工具开始游戏开发。你和其他人似乎都没听说过这款工具。大约在手稿完成了3/4的时候,我收到了一封来自Popfly开发小组的电子邮件,宣布该站点将会在那个月晚些时候关闭,并且API的所有资源和参考资料也会删除。此时,我喝到嘴里的咖啡禁不住喷了出来,那些不幸早早到了办公室的同事可遭了殃。随后,我联系了我的策划编辑Emi
Smith并告诉她这个消息。次写书和冒险就这样过早夭折了。你的公主在另外一个城堡里,但是,不幸的人们,我们不知道是哪一个城堡,也没有提示性的小脚印或蘑菇人为你指出正确的方向。游戏结束了。放下游戏操控器并走开吧。你失败了。
即便是我有一点失望(并且确信在那种情况下于事无补),Emi也打算放弃,并且就在第二天,她立即走到白板前,提出了多达6个新想法。依次看下来,似乎没有真正引发我的兴趣(或者说和我的技能相符合)的东西,直到我看到了这个列表的后一项,也就是Unity。我以前听说过这个引擎,并且阅读过一两篇相关的简短文章,因此,我认为这至少值得快速下载下来并看看。
由此开始了我对这一游戏引擎的强烈爱好,也向世界展示了它是如何改变我对于开发的态度的。花了两年的时间,我终写完了400页的手稿,还完成了测试项目,整个内容发送到打印机,吹响了无声的号角。放下笔,我回到了山村想要继续在田野里工作,无所事事,并且可能会在整整一个月中次在周六睡懒觉。我可能还会养一只猫。
那么,为什么啰唆这些?亲爱的读者,本书花了一年或两年的时间,以及是否更换了主题,这和你有什么关系呢?表面上,可能没有太大的关系。但是,写一本书就像开发一款游戏一样痛苦,特别是,如果你是初次接触这项工作。
……
评论
还没有评论。