本书分为五部分,每一章都介绍了一个独立的概念,并且使用循序渐进的介绍和问题来讲述新的概念,还使用一个综合的游戏项目贯穿全书。本书结合Unity这种多平台的集成引擎和编辑器,介绍了如何使用Unity创建游戏、添加交互性,以及修饰游戏并发布游戏的所有知识。在本书中,读者将学到所有重要的界面命令、怎样设置和组织项目,以及创建并运行一个3D游戏的所有基础,从角色导入到脚本到声音。本书还将介绍基本的游戏和关卡设计理论和特殊的技巧。
本书为读者提供了使用Unity来创建自己的游戏所需要的全面信息,适合学习游戏开发的各个阶层的读者和计算机专业的学生阅读。
计算机\程序设计
Unity是一种多平台的集成引擎和编辑器。本书介绍了如何使用Unity游戏引擎来创建可以在几乎所有可获得的平台上玩的游戏,这些平台从网页到WII甚至智能手机。Unity简单的界面、友好的开发环境以及对所有流行游戏平台的广泛支持,使得它对于新的开发人员或是那些希望使用一个简单、高效并且实惠的游戏引擎来创建游戏的人来说是完美的。在本书中,读者将学到所有重要的界面命令、怎样设置和组织项目,以及创建并运行一个3D游戏的所有基础,从角色导入到脚本到声音。本书还将介绍基本的游戏和关卡设计理论和特殊的技巧,因此,读者可以创建自己的游戏开发技能集合。本书分为五个部分,每一章都介绍了一个独立的概念,并且使用循序渐进的介绍和问题来教授新的概念,还使用一个综合的游戏项目贯穿全书。
本书介绍了从创建游戏资源、添加交互性到修饰我们完成的游戏并发布它的所有知识,并且为读者提供了使用Unity来创建自己的游戏所需要的所有信息。
随书附赠光盘包括:
·每一章用到的游戏资源和HTML源文件。
·完成示例游戏所需的部件。
·可以对Unity中所有着色器进行一一对比的一个着色器测试程序。
·最终项目文件,包括完整的示例游戏以及模型、材质和UI元素等额外的游戏资源。
·其他的辅助资源的链接。
·附加练习、重要术语表、常用的Unity类及其定义等。
(美)Michelle Menard 著:米歇尔*梅纳德(Michelle Menard)目前在马里兰州猎人谷的Firaxis Games担任作家和设计人员。之前她曾经从事过自由作家、编辑以及助理制作人等职业,也曾经短暂地从事过UI程序员、美工以及博物馆服务中心的程序员。米歇尔拥有萨凡纳美术和设计学院游戏设计专业的美术设计硕士学位,还是布朗大学应用数学和音乐系的双文学士。同时,她还在SCAD担任硕士课程的开发人员。
史晓明 李强 译:暂无简介
Unity是一款跨平台的专业游戏引擎,用它创建的游戏可以在浏览器、移动设备乃至游戏机等几乎所有常见平台上运行。它虽然功能强大,学习曲线却很短,再加上界面十分简洁易用,因而无论对初学者还是专业游戏开发团队,它都是非常好的选择。随着近年来以iPhone、iPad为代表的移动平台日益成熟,Unity也越来越受到游戏开发团队的青睐。在国内,不仅有很多人正在学习和使用它,不少高校也开设了基于Unity进行游戏开发的培训班,但是由于缺乏系统的、基于实践的教程,很多人都在在线帮助文档上苦苦挣扎,浪费了不少宝贵的时间。
本书着重介绍了怎样使用Unity来创建一款完整的游戏。全书分为五部分,共18章,每个部分都涉及了游戏开发中的一个常见方面:包括Unity概览和基本游戏设计理论、游戏资源的收集、游戏交互性的实现、游戏特效系统(光影、粒子系统、音效等)的完善乃至游戏的发布和构建等内容。本书附赠的光盘还包含丰富的素材和资源,可供读者研究学习甚至直接使用。可以说,通过阅读本书,读者不仅能够迅速了解Unity引擎的各种细节,也会对基于Unity进行游戏开发有一个完整的认识,甚至可以开始用Unity开发和创建自己的游戏。无论是对于游戏开发的初学者,还是想要转向Unity引擎的开发人员来说,本书都可以帮助他们节约大量的摸索时间,从而让他们可以把更多的精力投入到真正的游戏内容创建中。
市面上关于Unity的图书已经有一些,而本书以简单易学并结合具体示例教学的特点赢得了读者的好评。 Amazon上的读者对本书不吝溢美之词,认为这是一本很好的Unity游戏开发教程。全书紧紧围绕一个真实的、具有一定规模的3D游戏的创建和控制展开,而这正是它比其他图书更受关注的原因。本书从关卡创建阶段开始,逐步介绍到优化和发布的最终阶段,这种自然而符合逻辑的顺序和方式,也得到了读者的认可。本书的讲解细腻而准确,娓娓道来,这不仅是因为作者有多年的游戏设计和开发经验,而且也和其女性的独特视野密不可分。相信你在阅读本书的时候,也能体会到这些优点和特色。
漫长的翻译工作已然完成,欣喜之余,我们还想感谢机械工业出版社华章分社陈冀康和谢晓芳编辑,他们不仅给予我们翻译这本优秀图书的机会,还在本书的翻译工作中给我们不少指导和帮助。除此以外,我们还想感谢景龙、景文正、李振胜、刘红伟、刘永昌、陆如珍、陆如琴、庞晋才、戎利群、孙海军、孙连升、陶纯莲、王惠、徐晓蓓、徐云峰、周德勤等在本书的翻译过程中给我们的帮助。
本书由史晓明和李强翻译。其中,史晓明负责初译,李强负责全书统稿、文字润色和检查修改。我们很乐意与读者通过电子邮件讨论关于本书的内容。我们的邮箱分别是unity_book@cppercom和reejohn@sohucom。
最后,我们想感谢大家阅读我们的作品。也衷心祝愿读者在游戏开发道路上不断前进。
译者序
作者简介
第一部分入门
第1章序
第2章前言
21本书主要内容
22本书读者对象
23本书结构
24安装说明
241Unity引擎
242使用光盘里的内容
243可选安装
第3章Unity引擎概览
31熟悉界面
311Project视图
312Hierarchy视图
313Inspector视图
314工具栏
315Scene视图
316Game视图
317Animation视图
318控制台和状态栏
319性能分析器和资源服务器
3110定制编辑器
32Unity的基本概念
33可用的Unity许可证
34编辑器小结
第4章第一款游戏:从哪里开始
41基本设计理论
42找到核心思想
421头脑风暴
422研究其他的游戏
423纸面原型:这并不仅仅适用于商业软件
43进行计划
431基本的大纲
432一个简单的关卡文档
44开始
第二部分收集游戏资源
第5章用地形搭建舞台
51Unity的地形引擎
52定制地形
521使用高度图来创建高度
522使用笔刷来绘制高度
523绘制贴图
524放置树木
525使用草以及细节网格让场景变得更为散乱
526地形设置
53光照和阴影
54添加天空盒和基于距离的雾化效果
55在地形上加入水体
第6章创建环境:导入基本的定制资源
61先设计,后创建
62导入贴图
621关于导入的更多细节
622支持的格式
623为《Widget》的地形导入贴图
63导入基本网格
64设置简单的着色器和材质
641Unity提供的着色器
642凹凸贴图、高光贴图、立方环境贴图和细节贴图
643指定着色器和材质
644创建一种定制的天空盒材质
645添加水体
65使用资源时的有用技巧
651预制模型
652大规模对象选择和分组
653根据网格对齐
654重做地形
第7章创建角色
71玩家角色基础101
72导入角色以及其他非静态网格
第三部分用交互性使道具更逼真
第8章Unity中的脚本编程
81一个编辑器、三种语言、大量的选择
82选择一个脚本编辑器,你是否想要它实现自动完成
83Unity脚本编程基础
84运算符和比较
841运算符
842比较
85条件
851if语句
852ifelse语句
853switch语句
854条件运算符
86循环
861for循环
862while循环
87函数
88命名约定
第9章编写角色和状态控制脚本
91计划和设计
92一个简单的第三人称控制器
921控制器变量
922Unity的MonoBehaviour类
923FixedUpdate:让Widget移动
93设置Unity的输入管理器
931Input类回顾
932轴的命名约定
933Xbox风格控制器的设置示例
94连接摄像机
95装配状态控制器
951协程
952更新角色控制器
96完整的脚本
961Widget_Controllerjs
962Widget_Statusjs
963Widget_Camerajs
第10章连接动画
101Unity中的动画
102动画API
103设置玩家控制器的动画
1031定义问题
1032更新控制器
1033创建动画状态管理器
104在Unity内部创建动画
1041一些基本概念
1042Animation视图
105设置一段新的动画剪辑
1051创建定制动画
1052连接
106添加动画事件
107完整的脚本
1071Widget_Controllerjs更新
1072Widget_Animationjs
第11章使用触发器并创建环境交互
111触发器和碰撞
112设置一个简单的触发器对象
1121为了清晰而使用gizmo
1122背囊管理
113设置其他类型的触发器
1131死亡触发器
1132检查点——避免死亡的触发器
114完成的脚本
1141PickupItemsjs
1142Widget_Inventoryjs
1143DamageTriggerjs
1144CheckPointjs
1145Widget_Statusjs
第12章创建探险和AI
121人工智能:绝对人工、没多少智能
1211一些简单的AI指导方针
1212简单的工作流
122设置一个简单的敌人
1221AI控制器
1222为一只简单的小兔子编写的简单的状态管理器
123设置Widget的攻击
124在完成任务后奖励玩家
125产生和优化
126完整代码
1261EBunny_AIControllerjs
1262EBunny_Statusjs
1263Widget_AttackControllerjs
1264Enemy_RespawnPointjs
第13章设计游戏的GUI
131基本的界面理论
1311交互的步骤
1312为用户设计
132Unity的GUI系统
1321按钮
1322滑块
1323标签和框
1324文本输入
1325Toggle
1326工具栏和选择矩阵
1327窗口
133为Widget制作定制的皮肤
1331创建GUISkin
1332定义定制风格
1333导入新字体
134设置HUD
1341GUIContent
1342角色显示
1343分辨率
135弹出屏幕示例
136添加全屏菜单
137完整和更新的脚本
1371GUI_CustomControlsjs
1372GUI_HUDjs
1373Widget_AttackControllerjs
1374EBunny_Statusjs
1375GUI_WaypointStorejs
1376WaypointBehaviorjs
1377GUI_MainMenujs
第四部分完善和最后的修饰
第14章创建光影
141灯光的类型
1411光源属性
1412光照基础
142照亮游戏世界
143创建阴影
1431光照图
1432使用阴影投射器制作的阴影
144其他光照效果
1441镜头眩光
1442遮光
第15章使用粒子系统
151粒子:从烟到星尘
152设置一个简单的系统
1521粒子发射器
1522粒子动画器
1523粒子渲染器和材质
153高级粒子组件
1531世界粒子碰撞体
1532拖尾渲染器
1533线条渲染器
154Widget的粒子
1541拾取物品
1542检查点激活
1543Widget的攻击
1544敌人爆炸
155更新的脚本
1551PickupItemsjs
1552CheckPointjs
1553Widget_AttackControllerjs
1554EBunny_Statusjs
第16章加入声音和音乐
161反馈和环境
162设置一段简单的声音剪辑
1621环境音效
1622通过脚本控制声音
1623加入背景音乐
163更新的脚本
第五部分发行和发布版本
第17章基本的Unity调试和优化
171Unity中的调试
1711Console
1712日志文件
172优化
1721Profiler
1722基本代码优化
1723模拟
1724渲染Statistics页面
1725压缩文件
1726优化图形的其他方式
第18章创建最终版本
181准备版本
1811设置播放器
1812设置Application类
1813版本设置
182其他版本特性
1821新的资源和DLC
1822打包资源以便今后使用
183展望