推 荐 一
游戏被很多人称为“第九艺术”,近年来更与传统的文学、音乐、建筑、雕塑、绘画、舞蹈、电影和戏剧这“八大艺术”开始并驾齐驱。
游戏之所以变得越来越受欢迎,我觉得与其丰富的体验方式和内容形式息息相关。我们不仅可以在手机的方寸之间畅游《原神》这样的二次元开放式大世界,也可以在配备了高性能显卡的主机设备上(如 Xbox和 PlayStation),使用附带力反馈功能的手柄体验与游戏世界中超写实类角色的深入互动,更可以戴上 VR头盔感受真正的沉浸式 3D互动体验。
而要做出好的游戏,游戏引擎是核心开发工具之一。 Unity作为目前世界范围内市场占有率第一的游戏引擎,经过十几年的快速发展,我们已经可以使用它为将近 30个计算平台开发互动式内容。无论你是开发 2D、 3D,还是 VR/AR/MR互动式内容, Unity都可以提供完整的开发工具链。近些年来,这些内容已经超出游戏的领域,进入影视动画、汽车制造、建筑建造这些非游戏领域。
因为游戏本质上是实时渲染出来的互动式内容,所以游戏的一个基本功能是可以接受玩家的输入信息 (来自鼠标、键盘、手柄等 ),并对其进行处理,然后实时生成相关的内容。因此对于游戏开发人员来说,使用编程语言开发相关的游戏逻辑就是其中必不可少的一环。
本书使用通俗易懂的语言,深入浅出地为想要使用 Unity开发互动式内容(不仅仅是游戏 )的同学,提供了非常系统性的学习资料。配合书中的实例项目,一步一个脚印,按部就班地学习,相信大家很快可以掌握在 Unity中使用 C#编程语言的基础知识,开始自己的游戏开发之旅!
杨栋 Unity大中华区平台技术总监《创造高清 3D虚拟世界: Unity引擎 HDRP高清渲染管线实战》作者
推 荐 二
随着新一代信息技术的日新月异,以数字化、网络化、智能化、虚拟化为特征的信息化浪潮已经蔚然兴起,人们对信息内容的生产、传播和消费也从传统的单一渠道、单一媒介、单一体验升级为对多元、多维、多态的全域融合媒体的新需求。数字游戏兼具了感官刺激与交互性,和极佳的内容叙事能力,已成为当前最受欢迎、最具影响力的数字内容表达与传播形式之一;虚拟现实、增强现实、混合现实等人机交互技术更是为用户提供了虚实融合、沉浸全息的极致体验,进一步拉近了用户与内容的距离;以“万物智联”、“虚实互映”为目标,数字孪生技术通过构建智慧工业、智慧城市、智慧校园等方式,加快了政治、经济、生产、教育、文旅、传媒等各领域数字产业化和产业数字化的进程 ——而所有这一切,组成了今天备受人们关注和热议的元宇宙领域的重要基石。
与由短视频、自媒体的兴起会带来影视编辑学习门槛的降低,进而引领大众学习并参与内容生产一样,数字内容的消费升级也亟需低门槛、高效率、开放式的工具,使得万千大众能够积极参与数字内容的创作与开发,同时也为创意工作者、独立开发者以及中大型工作室提供更便利、更强大、更丰富的创作和开发环境,而 Unity便是当前领域中最受欢迎、最热门、最广受好评的引擎之一。
人工智能技术的快速发展与广泛应用,要求当代人应具备基本的编程能力和算法思维,以满足对未来智能社会的基本认知和信息素养。 C#语言作为一种面向对象、类型安全、表达自然的编程语言,同时也作为 Unity的脚本语言,是零基础初学者学习编程的绝佳选择,也便于已具备 C、C++、 Java和 JavaScript经验的成熟编程者快速上手 Unity的脚本编写。
本书从学习者的视角出发,将以往同类教材中晦涩难懂的概念与日常生活中的事物结合起来,用通俗平实的语言循序渐进地将编程的相关知识点娓娓道来,并通过案例实践的方式,与学习者一起制作游戏来达到学习 Unity的目的,是一本适合各专业背景的学习者和数字内容创作爱好者学习与了解 Unity游戏开发与 C#编程的入门教材和工具书。
曹三省教授中国传媒大学媒体融合与传播国家重点实验室党政班子成员协同创新中心副主任、互联网信息研究院副院长中国电子学会虚拟现实分会副主任委员
推 荐 三
首先非常感谢两位老师为本书的翻译付出的辛劳,很荣幸我能够有机会提前看到这本书,内容真的非常棒。本书充分地结合了 Unity来讲解 C#的知识体系。相比单纯的 C#教学来说,更实用也更有意思!书中非常全面地介绍了 Unity游戏开发过程中,大家几乎一定会用到的 C#知识,并使用通俗易懂的方式来讲解原理和实际运用。对于我个人来说,在我的 Unity项目中常常会运用很多 C#内容,但往往我只是停留在会用的程度,缺乏对其定义,或者说对其背后的基本原理和概念进行透彻的理解。这本书能够帮助我更全面地了解这些内容。特别值得一提的是,本书中的每一个关键知识点,除了结合了非常棒的案例以外,也有很多需要特别“注意”的提醒!书中还包括很多 C#技术文档的链接,可以帮助想要更深入学习知识的朋友快速定位到需要查阅的内容。事实上,本书更像一本参考书或字典,弥补了很多平时会被忽略的小技巧和知识点。想要在 Unity开发过程中学习 C#,看这本书就足够了!
当然,这本书除了 C#语言的介绍讲解以外,也涵盖了对几乎所有 Unity常用主要功能的介绍,组件的使用方法等等。如果全部认真看完并且自己动手完成操作的话,那么你与做出一个小游戏 Demo就只差一套美术素材的距离了:)
总之,这本书让我收获很多。只有打好基础才能发挥更多创意。本书也是我看过的唯一一本讲解 C#的书,推荐给所有刚刚上手 Unity或已经可以做一些小 Demo的朋友来阅读学习,相信你一定会跟我一样收获良多。
Michael Wang bilibili 知名 UP主:M_Studio 2022年度 Unity最具社区影响人物
推 荐 四
社区里面经常会被问到: Unity学习过程中需要了解哪些知识?这是一个很好的问题,也是一个很难回答的问题。幸运的是,本书很好地回答了这个问题。本书从 C#开始,涵盖到 Unity常用模块的使用,能够很好地帮助有兴趣的开发者深入浅出,系统性地学习 Unity。祝您开卷有益。
Unity大中华区资深技术经理高川
推 荐 五
从虚拟社区到游戏、元宇宙概念,虚拟体验实现了人们超越现实的想象,而 3D引擎是链接虚拟体验的重要工具。这是一本非常好的入门教材,当你有一定的程序基础后,基于一个通用成熟的商业引擎,可以让你快速地了解 3D游戏世界的基础结构搭建,从校门走向行业,将兴趣变成现实,帮助你完成自我的学习和实践。国内关于游戏的书籍一直非常少,更多的内容仅存在于行业内的交流。感谢分享经验和辛勤翻译的同学,让更多人有机会加入到创造全新世界体验中来。
徐振华苏州游戏蜗牛九阴工作室负责人
推 荐 六
游戏、互动式电影、扩展现实等一直深受青年一代喜爱,尤其在当今全面数字化的时代中,正逐渐成为文化创意、国际文化交流、文化遗产保护等众多领域最重要的信息载体和有效传播手段之一。 Unity使用 C#作为脚本编程语言,是青年人初次接触和尝试数字创意与开发的首选。本书条理清晰,语言表达通俗易懂,真正面向零起点学习者,且对美术、艺术等非计算机相关专业背景的读者也非常友好。通过对本书的学习,读者既能掌握 Unity的基本使用和操作技巧,同时也能掌握和理解 C#编程基础以及通用的编程理论知识。
王科大连外国语大学创新创业学院院长、软件学院院长、大数据产业学院院长
译者序
随着游戏、影视动画、扩展现实、数字孪生乃至元宇宙等相关技术及其应用的发展,世人对优质的视听、人机交互、虚拟仿真等相关需求愈加旺盛,数字内容的种类与形式也越发广泛和丰富,越来越多来自不同领域与专业的创意人员参与创作和开发。这便需要一种简单、快捷、高效的工具与工作流来满足不同领域内容创作者与开发者的需求,Unity便是其中流行与优质并存的选择之一。
在 Unity与 C#教学过程中,我们发觉现有教材或教程大多延续了传统计算机语言的语言范式和内容编排模式,虽严谨、专业度高,但言语晦涩难懂,且与应用和现实生活脱节。尤其是对于艺术、动画等非工科背景的学习者来说,专业语言成了一条难以逾越的门槛,很多 Unity爱好者和学习者往往都因此中道而止。
本书原著作者用极其通俗生活化的语言和比喻为读者诠释了 Unity与 C#语言的基础知识与使用方法,并结合了项目实践、说明与提示、小测验等模块进一步帮助读者理解和灵活运用 C#与 Unity。作者将创建的游戏项目命名为“ Hero Born”(勇者诞生 ),寄托了他对读者踏上学习征程的期许,还配有“Hero’s Trial”(勇者的试炼)环节,鼓励读者接受章节中的挑战。
我们在翻译过程中也追求尽力还原并贴合原作者口语化的叙述风格,希望能用平易近人的语言,为来自任意领域任何背景的读者清晰诠释相关专业概念。期待本书可以成为帮助零基础,尤其是艺术、影视动画等无编程背景的学习者了解 Unity与 C#的有力教程与工具书。
贡 献 者
关于作者
Harrison Ferrone出生并成长于美国伊利诺伊州的芝加哥。他花费了大量时间为 Microsoft编写技术文档,为 LinkedIn Learning和 Pluralsight创建教学内容,此外还是 Ray Wenderlich网站的技术编辑。
他获得了科罗拉多大学博尔德分校和芝加哥哥伦比亚学院的多个学位。毕业后,作为 iOS开发人员,在一家小型初创公司和一家财富 500强公司工作数年之后, Harrison转而投身于教学生涯,直到今天。一路走来,他买过很多书,养过几只猫,也在国外工作过,始终想知道为什么论文集《神经漫游者》没有被更多课程的教学大纲采用。
本书的完成离不开 Kelsey(我在这次写书旅程中的战友 )以及 Wilbur、 Merlin、Walter和 Evey给予我的勇气和关爱。
关于审校者
Andrew Edmonds是一位经验丰富的程序员、游戏开发工程师和教育家。他拥有沃什伯恩大学计算机科学学士学位,并且是 Unity认证的程序员和讲师。大学毕业后,他在堪萨斯州立法机构担任了三年的软件工程师,后五年开始教导高中生如何编写代码和制作电子游戏。作为一名教师,他帮助过许多有抱负的年轻游戏开发者取得了超出他们想象的成就,包括在2019年凭借使用 Unity制作的虚拟现实游戏赢得了 SkillsUSA全美电子游戏开发锦标赛。目前, Andrew与妻子 Jessica以及他们的两个女儿 Alice和 Ada在华盛顿居住生活。
Adam Brzozowski是一位资深的软件工程师,负责开发游戏和客户端应用程序。他的工作涉及 Unity、虚幻引擎、 C++、Swift和 Java,能够为每个项目找到合适的解决方案。
前言
Unity是世界上最受欢迎的游戏引擎之一,适用于业余爱好者、专业 3A工作室和电影制作公司。虽然 Unity主要被视为创作 3D的工具,但它还具有诸多专有功能,支持从 2D游戏、虚拟现实到后期制作、跨平台发布的所有内容。
尽管 Unity的即拖即用接口和内置功能深受广大开发者喜爱,但真正让 Unity更上一层楼的原因在于, Unity能为行为和游戏机制编写自定义 C#脚本。学习编写 C#代码对于已熟悉其他语言、经验丰富的程序员来说可能不是什么太大的障碍,但会令没有编程经验的初学者望而生畏。本书的意义在于带领大家从头开始学习 C#语言和编程的基本构成要素,同时在 Unity中开发一个有趣且好玩的游戏。
本书读者对象
本书主要面向没有编程基础或 C#语言经验的人群。无论是具有 C#或其他编程语言经验的编程老手,或 C#语言的初学者,只要想尝试在 Unity中动手实践,进行游戏开发,那么本书就适合他阅读和参考。
本书主要内容
第 1章“了解开发环境”,介绍 Unity安装过程、 Unity编辑器的主要功能、查阅 C#和 Unity特定主题文档的方法,以及从 Unity内部创建 C# 脚本的步骤,并对 Visual Studio应用具有初步认识,我们所有的代码编辑工作都将在 Visual Studio中进行。
第 2章“编程的构成要素”,从列举编程的原子级概念开始,将变量、方法和类与日常生活中的事物联系起来。然后介绍简单的调试技巧、正确的格式设置和注释,以及 Unity是如何将 C#脚本转换为组件的。
第 3章“深入研究变量、类型和方法”,对变量进行更深入的讲解,内容包括 C#的数据类型、命名约定、访问修饰符等其他编程基础内容。并讨论如何更有效地编写方法、使用参数和返回类型。最后,对属于 MonoBehavior类的标准 Unity方法进行概述。
第 4章“控制流和集合类型”,引入在代码中做出决策的常用方法,包括 if...else和 switch语句。然后介绍如何使用数组、列表和字典,并结合迭代语句来循环遍历集合类型。最后,介绍条件循环语句和被称为“枚举”的特殊 C#数据类型。
第 5章“类、结构体和 OOP”,首次接触并详细介绍如何构造和实例化类与结构体,创建构造函数、添加变量和方法的基本步骤,以及使用子类和继承的基础知识。最后,全面诠释面向对象编程及其在 C#中的应用。
第 6章“亲手实践 Unity”,标志着我们从 C#语法进入游戏设计、关卡构建和 Unity特定工具的世界。首先从了解游戏设计文档的基础知识开始,然后完成游戏关卡的场景布局,并添加光照和简单的粒子系统。
第 7章“角色移动、摄像机以及碰撞”,讲解使玩家角色移动和设置第三人称摄像机的不同方法,并介绍如何通过 Unity物理引擎获得更逼真的运动效果,如何使用碰撞体组件以及如何捕获场景中的交互。
第 8章“游戏机制脚本编写”,介绍游戏机制的概念以及如何有效地实现游戏机制。从添加简单的跳跃动作开始,然后创建射击机制,并基于前几章的代码添加处理道具收集的逻辑。
第 9章“AI基础与敌人行为”,简要概述游戏中的人工智能以及应用于 Hero Born示例中的相关概念。涵盖的主题包括 Unity中的导航、使用关卡几何体和导航网格、智能代理,以及敌人自动移动。
第 10章“再谈类型、方法和类”,更深入地讲解有关数据类型、中级方法特性以及可用于更复杂类的其他操作。本章将带着读者进一步了解 C#语言的多功能性和广泛度。
第 11章“栈、队列和 HashSet”,深入探讨中级集合类型及其功能。涵盖的主题包括如何使用堆栈、队列和 HashSet以及它们分别适合的不同开发场景。
第 12章“探索泛型、委托等”,详细介绍 C#语言的中级特性以及如何在实际场景中应用它们。从泛型编程的概述开始,逐步介绍委托、事件和异常处理等概念。最后,简要探讨常见的设计模式,并为未来更进一步的学习做好准备。
第 13章“旅程继续”,回顾整本书讲解的主要主题,并提供进一步学习 C#和 Unity的资源。这些资源包括在线阅读材料、认证信息和许多视频教程频道。
使用本书的条件
为了能在即将到来的 C#和 Unity冒险中获得最大收益,你需要保持好奇心和学习意愿。为了巩固所学知识,你需要花一些时间在书中的“行动时刻”“勇者的试炼”和“小测验”等部分。最后,在继续学习新知识之前,最好重温知识点或整个章节来刷新或加强理解,因为在不稳定的地基上盖房子是没有意义的。
此外,还需要在计算机上安装当前版本的 Unity,建议使用 2020或更高版本。本书中所有代码示例均已使用 Unity 2020.1进行测试,且应该可以在未来版本中正常使用。
本书涵盖的软件/硬件
Unity 2020.1或更高版本
Visual Studio 2019或更高版本
C# 8.0或更高版本
在开始之前,请检查计算机设置是否满足 https://docs.unity3d.com/2019.1/ Documentation/Manual/system-requirements.html上的 Unity系统要求。这些要求是针对 Unity 2019设置的,但也同样适用于 Unity 2020及更高版本。
下载示例代码文件及彩图
本书提供了大量的示例代码文件,可通过扫描封底处的二维码下载并查看。由于本书为单色印制,如需查看书中图片的彩色版本,也可通过扫描封底处二维码进行下载。