重磅推荐
【编辑推荐】
  全球3D游戏行业的发展。在学习Unity的众多材料中,官方文档和官方案例是其中不可替代的精品,其作用不亚于学习Windows编程时MSDN的作用。若能将官方案例抽丝剥茧,一步步完整地呈现出来,并对其中关键处予以重点讲解,想必会对Unity学习者大有裨益。为此,编者就在本书中精心遴选了11个官方案例来进行讲解,这些案例大多源自于Unity每次发布新版本时的演示案例,涵盖了Unity项目实战中的诸多“套路”,囊括了Unity引擎的所有核心功能。
【内容简介】

作为Unity引擎的辅助学习资料,Unity公司提供了大量的官方示例和演示程序供开发者参考,这些程序示例涵盖了各个主要游戏类型的程序架构,以及Unity引擎本身的几乎所有重要功能,极富参考价值。可惜的是,Unity公司在提供这些程序示例的同时,并没有给出相应的详细文字讲解和说明。

本书即从这些示例中精心挑选了若干个具有代表性的实例进行详细讲解,在每个实例中都重点切入一个或几个Unity引擎的核心功能点,进而以接近于现场教学的方式,引导读者一边阅读、一边动手,通过实际操作来掌握学习内容。在讲解过程中,本书还对与Unity编程相关的重要知识加以特别关注和讲解,使读者在实践中深刻理解Unity引擎的原理和使用方法,真正做到融会贯通。


【目录】
第1章 C#脚本编程基础
1.1 配置脚本开发环境
1.1.1 配置VisualStudio
1.1.2 配置MonoDevelop
1.1.3 脚本的创建
1.2 变量、数组与函数
1.2.1 变量的声明与使用
1.2.2 数组的声明与使用
1.2.3 函数的声明与使用
1.3 语句、表达式与运算符
1.3.1 语句
1.3.2 表达式
1.3.3 运算符
1.4 协程(Coroutine)
1.5 类与类的使用
1.6 输出调试信息
1.7 C#脚本示例
1.8 Unity脚本事件执行顺序
1.9 脚本模板与脚本编码
1.10 Unity5脚本升级
第2章 JavaScript脚本编程基础 31
2.1 JavaScript脚本编程基础
2.2 变量、数组与函数
2.2.1 变量
2.2.2 数组
2.2.3 函数
2.3 表达式、语句与运算符
2.4 JavaScript脚本示例
2.5 JavaScript脚本与C#脚本的交互
第3章 星际航行游戏——JSpaceShooter
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 实现射击行为(Shot)
……
第4章 潜行游戏——Stealth
第5章 粒子碰撞回调功能——ParticleCallbacks
第6章 Mecanim动画系统介绍——MecanimExampleScenes
第7章 Mecanim系统高级特性——Mecanim GDC201 3 Sample Project
第8章 移动设备输入控制——Star Trooper
第10章 第三人称射击游戏——Third Person MMO Controller
第11章 赛车游戏——CarTutorial
第12章 原生2D系统游戏——2D Platformer
第13章 新uGUI系统应用案例——Nightmares


【作者简介】
  刘钢:男,理学博士,Unity Technologies大中华区技术总监。2004年毕业于浙江大学CAD&CG国家重点实验室,之后从事过GPU设计、3D图形引擎研发、游戏引擎研发等相关工作,并实际参与了多款PC和移动平台上MMO游戏项目的技术指导工作。近几年来,他一直专注于Untiy引擎在大中华区的技术研发、支持和推广工作。
  孙文涛:男,毕业于武汉大学,曾就职于Autodesk上海研发中心、Intergraph中国研发中心、Altium上海研发中心等,历任软件工程师、高级软件工程师、软件开发主管等职。自2009年起学习并使用Unity,开发了多个基于Unity引擎的虚拟现实项目,同时也是“Unity之家”(www.unitycn.cn)的站长。

【前言】
  前言
  从Unity Technologies在2005年发布Unity 1.0版本,到2015年3月3日在GDC 2015上隆重推出Unity 5.0版本,已然过去了10年。在这十年间,IT技术风起云涌,游戏开发平台也从早期的桌面单机、游戏主机延伸到了PC互联网,以及如今如火如荼的移动互联网,Unity引擎亦随之演进成为一个跨平台的、高度整合的、方便易用的集成开发环境,成为同类软件产品中的佼佼者。
  近年来,国内的开发者一直通过各种途径来学习Unity开发技术,有关Unity开发的书籍也由初的凤毛麟角发展到而今的俯拾皆是,其中包括国外引进翻译的,也包括国内技术人员总结编写的,但其中专门针对开发案例进行讲解的书籍却一直很少见。
  在学习Unity的众多材料中,官方文档和官方案例是其中不可替代的精品,其作用不亚于学习Windows编程时MSDN的作用。若能将官方案例抽丝剥茧,一步步完整地呈现出来,并对其中关键处予以重点讲解,想必会对Unity学习者大有裨益。为此,编者就在本书中精心遴选了11个官方案例来进行讲解,这些案例大多源自于Unity每次发布新版本时的演示案例,涵盖了Unity项目实战中的诸多“套路”,囊括了Unity引擎的所有核心功能。
  在本书编写过程中,其思路是一章只讲解一个案例、一个案例只着重讲解一个知识点,力争把每个知识点讲清讲透;在具体行文时,竭力避免“空话套话”,争取多出“干货”,同时也遵循“一图胜千言”的宗旨,能用图表表达清楚的原理就用图表来说明。另一方面,为了照顾刚入门的读者,在每一章中都从零开始创建工程,经过一步步的近乎于现场教学式的讲解,终引领读者创建出一个与官方案例功能类似的游戏;为了突出各章的重点,对案例中与前面章节重复或与该章主旨关系不大的知识点进行了删减,读者在阅读时可以交叉参考,加深理解。
  以下是全书每一章的知识梗概,可便于读者快速了解全书的内容:
  第1章:介绍了Unity C#脚本语言的语法和Unity中的常用类、协程、脚本执行顺序等。
  第2章:介绍Unity JavaScript脚本语言的语法和示例。
  第3章:通过对Space Shooter案例的详尽剖析,介绍了一个完整的Unity游戏的创建过程。
  第4章:基于潜行游戏案例Stealth介绍了角色与环境、角色与敌人交互的控制逻辑。
  第5章:基于案例Particle Callbacks介绍了Shuriken粒子系统的创建和使用方法,着重讲解了粒子碰撞回调函数的使用方法。
  第6章:基于案例Mecanim Example Scenes中的5个场景,讲解了Mecanim动画系统的基本概念和基础功能,如运动状态机(Locomotion state machines)、人群模拟(Crowd simulations)、多层IK绑定(Multi-layer IK rigs)、武器绑定(weapon handing)、导航网格寻路(Navmesh)等。
  第7章:基于Mecanim GDC2013 Sample Project案例介绍了Mecanim中的高级功能,如二维混合树(2D Blend Tree)、同步动画层(Synced layers)、多IK通道(Multiple IK passes)以及动画录制与回放(animation recording & playback)等。
  第8章:基于Star Trooper案例介绍了Unity中与移动设备输入控制相关的API和实例。
  第9章:通过对Character Customization案例的分析,介绍了打包换装部件、加载换装部件的方法,重点讲解了与Asset Bundles操作相关的知识点。
  第10章:主要介绍了Unity中与第三人称游戏相关的摄像机和角色运动控制方法。
  第11章:基于Car Tutorial案例介绍了赛车类游戏的开发方法,重点介绍了Wheel Collider的用法。
  第12章:基于2D Platformer案例介绍了2D游戏的开发方法,重点讲解了Sprite和2D Collider的用法。
  第13章:基于Nightmares案例介绍了uGUI的用法。
  对以上每章中的案例,在随书光盘中都提供了对应的完整代码。事实上,任何编程能力的提升都应是实践多于理论,在此建议读者打开Unity编辑器,一步步跟着书中的讲解进行练习。
  在Unity版本的选择上,由于本书定稿时Unity 5.0尚未正式发布,除了第11章之外,编者都在Unity 5.0的64位测试版上进行了测试。而第11章是基于Unity 4.6版本完成测试的,这是因为Unity 5.0针对赛车类游戏采用了新的Vehicle SDK并对WheelCollider组件进行了更新,但Car Tutorial案例中的资源包并未随之及时更新,因而无法在Unity 5.0测试版中正常运行。
  本书适用于游戏从业开发者、大中院校计算机专业的学生以及其他对游戏开发感兴趣的读者。具备C#或JavaScript等语言的开发背景会有助于理解书中的内容,但这并不是必须的,读者可以参考本书第1、2章了解必要的理论知识。为了更好地理解书中的3D数学知识,建议读者阅读相关的3D数学专著。
  从本书开始编写时,便秉承“用心出精品”的精神,力争在有限的篇幅内限度地呈现出对读者有用的“干货”,期望能引导读者走向学习Unity的捷径。尽管编者对书稿进行了反复校对和审核,但限于时间和精力,书中的疏漏在所难免,希望读者在阅读过程中给予批评指正。针对阅读时发现的错误和问题,读者可以发邮件到unitycn@qq.com进行反馈,编者将适时整理出一份勘误表,以便再版时更正。
  本书由Unity Technologies主编,刘钢、孙文涛执笔。本书从初开始编写到结稿历时将近一年,写作过程占据了作者绝大部分的业余时间,因此本书的出版离不开编者家人的默默支持,在此谨向他们表示诚挚的感

【免费在线读】
  ②若未开启警报灯,则从当前亮度值均匀插值到o。
  (15)运行游戏。在Hierarchy视图中选中对象light—alarm—directional,入图4—6所示,在Inspector视图中勾选Alarm On,此时在Game窗口中,如图4—7所示,可以看到红色警报灯忽明忽暗地变化。
  烘焙场景Lightm印s的操作步骤如下所述:
  (1)从Project视图的Assets/Prefabs目录下找到预制体li曲ts—baked,将其拖入Hierarchy视图中,重置其Transform组件。lights_baked对象包含了将用于烘焙场景的灯光,与前面的实时灯光light_main_directional和light—alarm—directional:不同的是,将lights baked中灯光的GI Mode设置为Baked,即仅用于烘焙。
  ……
【书摘与插画】

返回顶部