《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效
《Unity和C#游戏编程入门(第7版)》[60M]百度网盘|pdf下载|亲测有效

Unity和C#游戏编程入门(第7版) pdf下载

isbn:9787302668022
出版社 清华大学出版社
出版年 2024-08-01
页数 388页
ISBN 9787302668022
装帧 精装
评分 9.4(豆瓣)
限时特惠 00:00:00
活动结束后恢复原价
纸质书参考价 ¥23
电子版限时价 ¥5.99 省 18 元

选择版本

不满意全额退款
发货失败双倍赔偿
邮箱即时发送

内容简介

本篇主要提供Unity和C#游戏编程入门(第7版)电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

 Unity能够为游戏行为和游戏机制编写自定义的C#脚本,该能力使Unity更加强大,这也是本书可以为编程新手提供帮助之处。

  哈里森 • 费隆(Harrison Ferrone)在这部畅销书的第7版中,通过在Unity中构建一款有趣且可玩的游戏原型的方式,引导读者从零了解C#语言和编程的每个组成

部分。

  本书将讲解面向对象编程(OOP)的基础、C#的基本概念以及如何使用Unity引擎,并通过大量的代码示例、练习和提示说明帮助读者悟透本书内容,提高实战能力。

  读者将通过编写C#脚本实现简单的游戏机制、执行过程化编程,并通过引入智能敌人和可造成伤害的投射物来为游戏增加复杂度。伴随着每个章节的学习,读者将探索Unity游戏开发的基础知识,包括游戏设计、光照基础、玩家移动、摄像机控制、碰撞等。


内容简介

主要内容:

● 解构并理解编程的基础知识

● 通过代码示例全面了解面向对象编程以及它是如何在C#中应用的跟随简单的步骤和示例在Unity中创建和实现C#脚本

● 使用接口、抽象类和类扩展将代码分割成可以灵活复用的构建块

● 掌握游戏设计文档的基础知识,进行关卡搭建、添加光照和简单的对象动画

● 使用C#创建简单的游戏机制,例如实现玩家控制器和射击机制

● 熟悉堆栈、队列、异常处理、错误处理等其他C#核心概念

● 处理文本、XML以及JSON数据以保存和加载游戏数据


作者简介

  Harrison Ferrone是土生土长的芝加哥人,他经常为LinkedIn和Pluralsight创建教学内容,并担任Ray Wenderlich网站的技术编辑,曾为Microsoft的混合现实团队编写技术文档。

  在科罗拉多大学博尔德分校和芝加哥哥伦比亚学院求学时,Harrison Ferrone撰写过多篇引发关注的论文。作为iOS开发人员,在为一家初创公司和另一家名列《财富》500强的公司工作数年后,Harrison Ferrone选择从事教育事业。


精彩书评

大厂大牛、学院教授、技术社区KOL 、行业翘楚联袂作序推荐


游戏被很多人称为“第九艺术”,近年来更与传统的文学、音乐、建筑、雕塑、绘画、舞蹈、电影和戏剧这“八大艺术”开始并驾齐驱。

游戏之所以变得越来越受欢迎,我觉得与其丰富的体验方式和内容形式息息相关。我们不仅可以在手机上畅游《原神》这样的二次元开放式大世界,也可以在配备了高性能显卡的主机设备(如 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#编程基础以及通用的编程理论知识。王科

大连外国语大学创新创业学院院长、

软件学院院长、大数据产业学院院长


原版在美亚的五星好评


★★★★★ 初学者的好选择!

——Bjorn

  对于希望入职Unity游戏开发行业的初学者而言,先打下扎实的C#基础,后面进步会很快。本书解释了在Unity中理解和使用C#开发游戏的必要信息。读完本书后,你会具备拆解现有游戏代码的能力,并能够利用拆解的代码为自己的游戏构建所需的功能。这样才算真正的入门。


★★★★★ Unity和C#的绝佳启动板!

——Jesse Back

  在真正进入Unity的使用方法之前,本书介绍了C#和基本编程概念。我曾观看过一些C#的教程视频,但无法掌握其中的概念,这本书会给出这些概念的代码并解释每一行这样写的原因和方式。


★★★★★ 如果只能选择一本书学习Unity,就是本书!

——Geoffrey Ian Ward

  我通常不写评论,这里长话短说。在开始学习Unity的过程中,我读过多本书。其中本书是更直接、更易懂、更完整的,也是为数不多一本我不得不逐页阅读的书。书中没有涵盖所有内容,但是书中包含的Unity游戏引擎的入门知识已经足够让我启动、运行和创建游戏。


★★★★★ 一本值得尝试的好书!

——David Hemphill

  本书的内容在概念的稳步发展中徐徐展开,完全没有思路跳跃或分散的现象。通过10个小时全神贯注的学习,我读完了本书。我一开始几乎没有C#或Unity的背景,只知道编程的概念,忠实阅读全书的过程中,遵循了作者的所有建议,完成了测验,并创建了整个Hero Born项目。

  对于任何想要使用Unity进行编程的人来说,都强烈推荐本书!


★★★★★ 这本书很特别!

——Ronald

  从一开始阅读这本书,我就被它的精细讲解所震撼。本书确实对初学者有帮助,作者真正了解新入门的开发人员,知道如何帮助开发新手进阶。我向很多人推荐了这本书,并还将继续推荐。如果你对学习C#感兴趣,即使不是为了制作游戏,也可以阅读这本书。本书让C#变得有趣。


★★★★★ 非常好的Unity入门书!

——Vincent

  对于任何想要学习Unity编程的人来说,本书都必不可少。这本书为坚实的知识库奠定了良好的基础,书中的概念很容易理解,解释得很好。我买这本书是为了巩固我的基础,现在,我已经完成了几个项目,并通过本书发现了很多我需要改进的地方。我很高兴知道我过去是错的,现在我学会了正确的做法。推荐给任何想要在Unity中成长并以正确的方式获得指导的人。


目录

第1章 了解开发环境 1

1.1 技术要求 1

1.2 Unity 2022入门 2

1.2.1 使用macOS 7

1.2.2 创建新项目 7

1.2.3 编辑器界面导航 9

1.3 在Unity中使用C# 11

1.3.1 使用C#脚本 11

1.3.2 介绍Visual Studio编辑器 12

1.3.3 同步C#文件 14

1.4 浏览技术文档 15

1.4.1 访问Unity的技术文档 15

1.4.2 查找C#资源 18

1.5 本章小结 19

1.6 小测验 —— 关于脚本 20

第2章 编程的基本构建块 21

2.1 定义变量 21

2.1.1 名字很重要 22

2.1.2 变量充当占位符 23

2.2 了解方法 26

2.2.1 方法驱使行为 26

2.2.2 方法也是占位符 27

2.3 类 29

2.3.1 一个常见的Unity类 30

2.3.2 类就像蓝图 30

2.3.3 类之间的通信 31

2.4 使用注释 32

2.4.1 单行注释 32

2.4.2 多行注释 32

2.4.3 添加注释 33

2.5 整合基本构建块 33

2.5.1 将脚本变成组件 34

2.5.2 来自MonoBehaviour的助力 36

2.6 本章小结 37

2.7 小测验——C#的基本构建块 37

第3章 深入了解变量、类型和方法 39

3.1 编写符合规范的C#代码 40

3.2 调试代码 41

3.3 深入了解变量 42

3.3.1 声明变量 42

3.3.2 使用访问修饰符 44

3.3.3 了解数据类型 46

3.3.4 命名变量 51

3.3.5 了解变量的作用域 52

3.4 运算符 53

3.5 定义方法 55

3.5.1 声明方法 56

3.5.2 命名约定 58

3.5.3 方法是逻辑上的绕行道 58

3.5.4 指定参数 59

3.5.5 指定返回值 60

3.5.6 使用返回值 61

3.6 本章小结 64

3.7 小测验——变量和方法 65

第4章 控制流和集合类型 67

4.1 选择语句 67

4.1.1 if-else 语句 68

4.1.2 switch语句 77

4.1.3 小测验1——if语句与逻辑运算符 82

4.2 初识集合 82

4.2.1 数组 82

4.2.2 列表 86

4.2.3 字典 89

4.2.4 小测验2—— 关于集合的一切 92

4.3 迭代语句 92

4.3.1 for循环 92

4.3.2 foreach循环 96

4.3.3 while 循环 98

4.3.4 超越无限 100

4.4 本章小结 101

第5章 使用类、结构体以及面向对象编程 103

5.1 什么是面向对象编程 104

5.2 定义类 104

5.2.1 实例化类对象 105

5.2.2 添加类字段 106

5.2.3 使用构造方法 107

5.2.4 声明类方法 110

5.3 声明结构体 111

5.4 了解引用类型和值类型 114

5.4.1 引用类型 114

5.4.2 值类型 115

5.5 植入面向对象的思维 116

5.5.1 封装 117

5.5.2 继承 118

5.5.3 组合 120

5.5.4 多态 121

5.6 在Unity中应用面向对象编程 122

5.6.1 对象是类的行动 123

5.6.2 访问组件 124

5.7 本章小结 128

5.8 小测验——面向对象编程的那些事 128

第6章 亲手实践Unity 129

6.1 游戏设计入门 129

6.1.1 游戏设计文档 130

6.1.2 Hero Born游戏单页文档 131

6.2 构建关卡 131

6.2.1 创建原始对象 132

6.2.2 用3D思维思考 134

6.2.3 材质 135

6.2.4 白盒 138

6.3 光照基础 147

6.3.1 创建光源 147

6.3.2 Light组件属性 148

6.4 在Unity中制作动画 149

6.4.1 使用代码创建动画 150

6.4.2 在Unity中使用Animation窗口创建动画 151

6.4.3 录制关键帧 154

6.4.4 曲线和切线 156

6.5 本章小结 158

6.6 小测验—— Unity的基本功能 159

第7章 角色移动、摄像机以及碰撞 161

7.1 管理玩家移动 161

7.2 使用Transform组件移动玩家 162

7.2.1 理解向量 164

7.2.2 获取玩家输入 166

7.2.3 角色移动 167

7.3 编写摄像机行为脚本 170

7.4 使用Unity物理系统 172

7.4.1 刚体运动 174

7.4.2 碰撞体和碰撞 178

7.4.3 使用碰撞触发器 181

7.4.4 物理系统综述 185

7.5 本章小结 186

7.6 小测验 —— 玩家控制和物理系统 186

第8章 游戏机制脚本编写 187

8.1 添加跳跃 187

8.1.1 枚举介绍 188

8.1.2 使用层遮罩 191

8.2 发射子弹 196

8.2.1 实例化对象 196

8.2.2 添加射击机制 198

8.2.3 管理对象堆积 201

8.3 创建游戏管理器 202

8.3.1 追踪玩家属性 202

8.3.2 get和set属性 204

8.3.3 更新道具收集 206

8.4 创建GUI 208

8.4.1 显示玩家数据 208

8.4.2 胜负条件 216

8.4.3 使用指令和命名空间暂停和重启游戏 221

8.5 本章小结 225

8.6 小测验——游戏机制 225

第9章 AI基础与敌人行为 227

9.1 在Unity中导航3D空间 227

9.1.1 导航组件 228

9.1.2 设置敌人代理 230

9.2 移动敌人代理 231

9.2.1 面向过程编程 231

9.2.2 引用巡逻点 232

9.2.3 移动敌人 234

9.3 敌人游戏机制 238

9.3.1 寻找和销毁:改变代理的目标 238

9.3.2 减少玩家生命值 240

9.3.3 检测子弹碰撞 241

9.3.4 更新游戏管理器 244

9.4 重构并保持“DRY” 246

9.5 本章小结 248

9.6 小测验——AI和导航 248

第10章 重睹类型、方法和类 249

10.1 再谈访问修饰符 249

10.1.1 常量和只读属性 250

10.1.2 使用static关键字 250

10.2 重睹方法 252

10.2.1 重载方法 252

10.2.2 ref参数 254

10.2.3 out参数 256

10.3 中级的面向对象编程 257

10.3.1 接口 257

10.3.2 抽象类 261

10.3.3 类的扩展 263

10.4 命名空间冲突和类型别名 266

10.5 本章小结 267

10.6 小测验——升级 268

第11章 特殊集合类型和LINQ 269

11.1 栈 269

11.1.1 出栈(Pop)和查看栈顶(Peek) 273

11.1.2 常用方法 274

11.2 队列 275

11.3 哈希集 277

11.4 关于中级集合的小结 279

11.5 用LINQ查询数据 280

11.5.1 LINQ基础 280

11.5.2 lambda表达式 283

11.5.3 链式查询 284

11.5.4 将数据转换为新类型 285

11.5.5 用可选语法化简 286

11.6 本章小结 288

11.7 小测验——中级的集合 288

第12章 保存、加载与数据序列化 289

12.1 数据格式 289

12.1.1 解构XML 290

12.1.2 解构JSON 291

12.2 了解文件系统 293

12.2.1 使用资产路径 295

12.2.2 创建或删除目录 297

12.2.3 创建、更新、删除文件 299

12.3 使用数据流 305

12.3.1 管理数据流资源 306

12.3.2 使用StreamWriter与StreamReader 306

12.3.3 创建一个XMLWriter 310

12.3.4 自动关闭数据流 313

12.4 数据序列化 314

12.4.1 序列化和反序列化XML 315

12.4.2 序列化和反序列化JSON 319

12.5 数据汇总 325

12.6 本章小结 326

12.7 小测验——数据管理 326

第13章 探索泛型、委托以及更多 327

13.1 泛型 327

13.1.1 泛型类 328

13.1.2 泛型方法 330

13.1.3 约束类型参数 333

13.1.4 向Unity对象添加泛型 336

13.2 委托行动 337

13.2.1 创建调试委托 337

13.2.2 将委托作为参数类型 339

13.3 触发事件 340

13.3.1 创建并调用事件 341

13.3.2 处理事件订阅 342

13.3.3 清理事件订阅 344

13.4 处理异常 345

13.4.1 抛出异常 345

13.4.2 使用try-catch语句 347

13.5 本章小结 350

13.6 小测验——中级 C# 350

第14章 旅程继续 351

14.1 有待更深入的知识 351

14.2 牢记面向对象编程 352

14.3 设计模式入门 353

14.4 走进Unity项目 353

14.5 本书未提及的Unity特性 354

14.6 下一步的学习 354

14.6.1 C#资源 354

14.6.2 Unity资源 355

14.6.3 Unity认证 355

14.7 英雄的试炼 —— 向全世界展示 356

14.8 本章小结 357

小测验答案 359


前言/序言

Unity 是世界上最受欢迎的游戏引擎之一,它适用于业余爱好者、专业3A工作室和电影制作公司。尽管Unity常以其作为3D工具的使用而闻名,但它还有诸多专有功能,为2D游戏、虚拟现实、影视后期制作、跨平台发布等内容生产提供支持。

开发者喜欢Unity的拖放界面和内置功能,但真正让Unity更上一层楼的,是因其能为行为和游戏机制编写自定义C#脚本。学习编写C#代码对于已熟悉其他语言、经验丰富的程序员来说可能不是一个巨大的障碍,但对于那些没有编程经验的人来说,可能会是令人生畏的。本书的意义在,将带你从零开始学习编程的和C#语言的基本知识,并同时在Unity中构建一个有趣且可玩的游戏原型。

本书读者对象

本书主要面向没有编程基础或C#语言经验的人群。然而,无论你是C#语言或其他编程语言的编程老手,还是编程初学者,只要想尝试在Unity中动手实践进行游戏开发,那么本书就正是你所需要的。

本书主要内容

第1章“了解开发环境”,介绍了Unity安装过程、Unity编辑器的主要功能、如何查阅C#和 Unity特定主题的文档。以及如何从Unity编辑器创建C#脚本,并初步了解如何使用Visual Studio,Visual Studio是进行所有的代码编辑工作的地方。

第2章“编程的基本构建块”,从列举编程的原子级概念开始,将变量、方法和类与日常生活中的事物联系起来。然后,介绍了简单的调试技巧、如何进行正确的格式设置和注释,以及Unity是如何将C#脚本转换为组件的。

第3章“深入了解变量、类型和方法”,在第2章的基础上进行更深入的讲解,内容包括C#的数据类型、命名规则、访问修饰符等其他编程基础内容。还介绍了如何更有效地编写方法、使用参数和返回类型。最后,对属于MonoBehaviour类的标准Unity方法进行了概述。

第4章“控制流和集合类型”,介绍了在代码中做决策的常用方法,包括if-else和switch语句。然后介绍了如何使用数组、列表和字典,并结合迭代语句来循环遍历集合类型。在本章的最后,介绍了条件循环语句和一个称为枚举的特殊C#数据类型。

第5章“使用类、结构体以及面向对象编程”,在本章首次接触如何构建和实例化类和结构体。还介绍创建构造函数、添加变量和方法的基本步骤,以及如何使用子类和继承的基础知识。最后,全面诠释了面向对象编程及其在C#中的应用。

第6章“亲手实践Unity”,标志着我们从C#语法进入游戏设计、关卡构建和Unity特色工具的世界。首先从了解游戏设计文档的基础知识开始,然后进行游戏关卡的几何布局,并添加光照和简单的粒子系统。

第7章“角色移动、摄像机以及碰撞”,讲解了使玩家对象移动和设置第三人称摄像机的不同方法,还介绍了如何通过Unity物理引擎获得更逼真的运动效果,如何使用碰撞体组件以及如何捕获场景中的交互。

第8章“游戏机制脚本编写”,介绍了游戏机制的概念以及如何有效地实现游戏机制。从添加简单的跳跃动作开始,然后创建射击机制,并基于前几章的代码添加处理道具收集的逻辑。

第9章“AI基础与敌人行为”,简要概述了游戏中的人工智能以及应用于Hero Born示例中的相关概念。涵盖的主题包括Unity中的地图导航、使用关卡几何结构和导航网格、智能代理,以及敌人自动移动等。

第10章“重睹类型、方法和类”,更深入地讲解了有关数据类型、中级的方法特性以及可用于更复杂类的附加行为。本章带领读者进一步了解C#语言的功能多样性和广度。

第11章“特殊集合类型和LINQ”,深入探讨了栈、队列和哈希集,以及它们分别适合的不同开发场景。此外,本章还探讨了如何使用LINQ(语言集成查询)对数据集合进行过滤、排序、变换等。

第12章“保存、加载与数据序列化”,着重介绍了如何处理游戏信息。话题涵盖了如何操作文件系统,以及如何创建、删除、更新文件等。此外还介绍了如何处理如XML、JSON、二进制数据等不同的数据类型,并在最后实践部分讨论如何将C#对象直接序列化为对应的数据格式。

第13章“探索泛型、委托以及更多”,详细介绍了C#语言的中级特性以及如何在实战中应用它们。从泛型编程的概述开始,逐步介绍了委托、事件和异常处理等概念。

第14章“旅程继续”,回顾了整本书中所学的主要主题,并提供了进一步学习C#和Unity的资源。这些资源包括在线阅读材料、认证信息和一些推荐的视频教程频道。

如何充分地利用好本书

为了能在即将到来的C#和Unity旅程中获得最大收益,你唯一需要的是保持好奇心和学习意愿。话虽如此,如果你希望巩固所学知识,那么完成所有的代码练习、“英雄的试炼”和“小测验”等部分是必须的。最后,在继续学习新知识之前,重温已学过的知识点或整个章节来刷新或巩固理解不失为一个好主意。毕竟,在不稳定的地基上建造房子是没有意义的。

此外,还需要在计算机上安装当前版本的Unity——建议使用2022或更新版本。所有代码示例均已在Unity 2022.1上进行了测试,它们应该可以在未来的版本中正常运行。


本书涉及的软件和硬件

Unity 2022.1 或更高版本

Visual Studio 2019 或更高版本

C# 8.0 或更高版本

本书的代码库和彩图可扫描封底二维码下载。



产品特色

编辑推荐

 Unity能够为游戏行为和游戏机制编写自定义的C#脚本,该能力使Unity更加强大,这也是本书可以为编程新手提供帮助之处。

  哈里森 • 费隆(Harrison Ferrone)在这部畅销书的第7版中,通过在Unity中构建一款有趣且可玩的游戏原型的方式,引导读者从零了解C#语言和编程的每个组成

部分。

  本书将讲解面向对象编程(OOP)的基础、C#的基本概念以及如何使用Unity引擎,并通过大量的代码示例、练习和提示说明帮助读者悟透本书内容,提高实战能力。

  读者将通过编写C#脚本实现简单的游戏机制、执行过程化编程,并通过引入智能敌人和可造成伤害的投射物来为游戏增加复杂度。伴随着每个章节的学习,读者将探索Unity游戏开发的基础知识,包括游戏设计、光照基础、玩家移动、摄像机控制、碰撞等。


内容简介

主要内容:

● 解构并理解编程的基础知识

● 通过代码示例全面了解面向对象编程以及它是如何在C#中应用的跟随简单的步骤和示例在Unity中创建和实现C#脚本

● 使用接口、抽象类和类扩展将代码分割成可以灵活复用的构建块

● 掌握游戏设计文档的基础知识,进行关卡搭建、添加光照和简单的对象动画

● 使用C#创建简单的游戏机制,例如实现玩家控制器和射击机制

● 熟悉堆栈、队列、异常处理、错误处理等其他C#核心概念

● 处理文本、XML以及JSON数据以保存和加载游戏数据


作者简介

  Harrison Ferrone是土生土长的芝加哥人,他经常为LinkedIn和Pluralsight创建教学内容,并担任Ray Wenderlich网站的技术编辑,曾为Microsoft的混合现实团队编写技术文档。

  在科罗拉多大学博尔德分校和芝加哥哥伦比亚学院求学时,Harrison Ferrone撰写过多篇引发关注的论文。作为iOS开发人员,在为一家初创公司和另一家名列《财富》500强的公司工作数年后,Harrison Ferrone选择从事教育事业。


精彩书评

大厂大牛、学院教授、技术社区KOL 、行业翘楚联袂作序推荐


游戏被很多人称为“第九艺术”,近年来更与传统的文学、音乐、建筑、雕塑、绘画、舞蹈、电影和戏剧这“八大艺术”开始并驾齐驱。

游戏之所以变得越来越受欢迎,我觉得与其丰富的体验方式和内容形式息息相关。我们不仅可以在手机上畅游《原神》这样的二次元开放式大世界,也可以在配备了高性能显卡的主机设备(如 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#编程基础以及通用的编程理论知识。王科

大连外国语大学创新创业学院院长、

软件学院院长、大数据产业学院院长


原版在美亚的五星好评


★★★★★ 初学者的好选择!

——Bjorn

  对于希望入职Unity游戏开发行业的初学者而言,先打下扎实的C#基础,后面进步会很快。本书解释了在Unity中理解和使用C#开发游戏的必要信息。读完本书后,你会具备拆解现有游戏代码的能力,并能够利用拆解的代码为自己的游戏构建所需的功能。这样才算真正的入门。


★★★★★ Unity和C#的绝佳启动板!

——Jesse Back

  在真正进入Unity的使用方法之前,本书介绍了C#和基本编程概念。我曾观看过一些C#的教程视频,但无法掌握其中的概念,这本书会给出这些概念的代码并解释每一行这样写的原因和方式。


★★★★★ 如果只能选择一本书学习Unity,就是本书!

——Geoffrey Ian Ward

  我通常不写评论,这里长话短说。在开始学习Unity的过程中,我读过多本书。其中本书是更直接、更易懂、更完整的,也是为数不多一本我不得不逐页阅读的书。书中没有涵盖所有内容,但是书中包含的Unity游戏引擎的入门知识已经足够让我启动、运行和创建游戏。


★★★★★ 一本值得尝试的好书!

——David Hemphill

  本书的内容在概念的稳步发展中徐徐展开,完全没有思路跳跃或分散的现象。通过10个小时全神贯注的学习,我读完了本书。我一开始几乎没有C#或Unity的背景,只知道编程的概念,忠实阅读全书的过程中,遵循了作者的所有建议,完成了测验,并创建了整个Hero Born项目。

  对于任何想要使用Unity进行编程的人来说,都强烈推荐本书!


★★★★★ 这本书很特别!

——Ronald

  从一开始阅读这本书,我就被它的精细讲解所震撼。本书确实对初学者有帮助,作者真正了解新入门的开发人员,知道如何帮助开发新手进阶。我向很多人推荐了这本书,并还将继续推荐。如果你对学习C#感兴趣,即使不是为了制作游戏,也可以阅读这本书。本书让C#变得有趣。


★★★★★ 非常好的Unity入门书!

——Vincent

  对于任何想要学习Unity编程的人来说,本书都必不可少。这本书为坚实的知识库奠定了良好的基础,书中的概念很容易理解,解释得很好。我买这本书是为了巩固我的基础,现在,我已经完成了几个项目,并通过本书发现了很多我需要改进的地方。我很高兴知道我过去是错的,现在我学会了正确的做法。推荐给任何想要在Unity中成长并以正确的方式获得指导的人。


目录

第1章 了解开发环境 1

1.1 技术要求 1

1.2 Unity 2022入门 2

1.2.1 使用macOS 7

1.2.2 创建新项目 7

1.2.3 编辑器界面导航 9

1.3 在Unity中使用C# 11

1.3.1 使用C#脚本 11

1.3.2 介绍Visual Studio编辑器 12

1.3.3 同步C#文件 14

1.4 浏览技术文档 15

1.4.1 访问Unity的技术文档 15

1.4.2 查找C#资源 18

1.5 本章小结 19

1.6 小测验 —— 关于脚本 20

第2章 编程的基本构建块 21

2.1 定义变量 21

2.1.1 名字很重要 22

2.1.2 变量充当占位符 23

2.2 了解方法 26

2.2.1 方法驱使行为 26

2.2.2 方法也是占位符 27

2.3 类 29

2.3.1 一个常见的Unity类 30

2.3.2 类就像蓝图 30

2.3.3 类之间的通信 31

2.4 使用注释 32

2.4.1 单行注释 32

2.4.2 多行注释 32

2.4.3 添加注释 33

2.5 整合基本构建块 33

2.5.1 将脚本变成组件 34

2.5.2 来自MonoBehaviour的助力 36

2.6 本章小结 37

2.7 小测验——C#的基本构建块 37

第3章 深入了解变量、类型和方法 39

3.1 编写符合规范的C#代码 40

3.2 调试代码 41

3.3 深入了解变量 42

3.3.1 声明变量 42

3.3.2 使用访问修饰符 44

3.3.3 了解数据类型 46

3.3.4 命名变量 51

3.3.5 了解变量的作用域 52

3.4 运算符 53

3.5 定义方法 55

3.5.1 声明方法 56

3.5.2 命名约定 58

3.5.3 方法是逻辑上的绕行道 58

3.5.4 指定参数 59

3.5.5 指定返回值 60

3.5.6 使用返回值 61

3.6 本章小结 64

3.7 小测验——变量和方法 65

第4章 控制流和集合类型 67

4.1 选择语句 67

4.1.1 if-else 语句 68

4.1.2 switch语句 77

4.1.3 小测验1——if语句与逻辑运算符 82

4.2 初识集合 82

4.2.1 数组 82

4.2.2 列表 86

4.2.3 字典 89

4.2.4 小测验2—— 关于集合的一切 92

4.3 迭代语句 92

4.3.1 for循环 92

4.3.2 foreach循环 96

4.3.3 while 循环 98

4.3.4 超越无限 100

4.4 本章小结 101

第5章 使用类、结构体以及面向对象编程 103

5.1 什么是面向对象编程 104

5.2 定义类 104

5.2.1 实例化类对象 105

5.2.2 添加类字段 106

5.2.3 使用构造方法 107

5.2.4 声明类方法 110

5.3 声明结构体 111

5.4 了解引用类型和值类型 114

5.4.1 引用类型 114

5.4.2 值类型 115

5.5 植入面向对象的思维 116

5.5.1 封装 117

5.5.2 继承 118

5.5.3 组合 120

5.5.4 多态 121

5.6 在Unity中应用面向对象编程 122

5.6.1 对象是类的行动 123

5.6.2 访问组件 124

5.7 本章小结 128

5.8 小测验——面向对象编程的那些事 128

第6章 亲手实践Unity 129

6.1 游戏设计入门 129

6.1.1 游戏设计文档 130

6.1.2 Hero Born游戏单页文档 131

6.2 构建关卡 131

6.2.1 创建原始对象 132

6.2.2 用3D思维思考 134

6.2.3 材质 135

6.2.4 白盒 138

6.3 光照基础 147

6.3.1 创建光源 147

6.3.2 Light组件属性 148

6.4 在Unity中制作动画 149

6.4.1 使用代码创建动画 150

6.4.2 在Unity中使用Animation窗口创建动画 151

6.4.3 录制关键帧 154

6.4.4 曲线和切线 156

6.5 本章小结 158

6.6 小测验—— Unity的基本功能 159

第7章 角色移动、摄像机以及碰撞 161

7.1 管理玩家移动 161

7.2 使用Transform组件移动玩家 162

7.2.1 理解向量 164

7.2.2 获取玩家输入 166

7.2.3 角色移动 167

7.3 编写摄像机行为脚本 170

7.4 使用Unity物理系统 172

7.4.1 刚体运动 174

7.4.2 碰撞体和碰撞 178

7.4.3 使用碰撞触发器 181

7.4.4 物理系统综述 185

7.5 本章小结 186

7.6 小测验 —— 玩家控制和物理系统 186

第8章 游戏机制脚本编写 187

8.1 添加跳跃 187

8.1.1 枚举介绍 188

8.1.2 使用层遮罩 191

8.2 发射子弹 196

8.2.1 实例化对象 196

8.2.2 添加射击机制 198

8.2.3 管理对象堆积 201

8.3 创建游戏管理器 202

8.3.1 追踪玩家属性 202

8.3.2 get和set属性 204

8.3.3 更新道具收集 206

8.4 创建GUI 208

8.4.1 显示玩家数据 208

8.4.2 胜负条件 216

8.4.3 使用指令和命名空间暂停和重启游戏 221

8.5 本章小结 225

8.6 小测验——游戏机制 225

第9章 AI基础与敌人行为 227

9.1 在Unity中导航3D空间 227

9.1.1 导航组件 228

9.1.2 设置敌人代理 230

9.2 移动敌人代理 231

9.2.1 面向过程编程 231

9.2.2 引用巡逻点 232

9.2.3 移动敌人 234

9.3 敌人游戏机制 238

9.3.1 寻找和销毁:改变代理的目标 238

9.3.2 减少玩家生命值 240

9.3.3 检测子弹碰撞 241

9.3.4 更新游戏管理器 244

9.4 重构并保持“DRY” 246

9.5 本章小结 248

9.6 小测验——AI和导航 248

第10章 重睹类型、方法和类 249

10.1 再谈访问修饰符 249

10.1.1 常量和只读属性 250

10.1.2 使用static关键字 250

10.2 重睹方法 252

10.2.1 重载方法 252

10.2.2 ref参数 254

10.2.3 out参数 256

10.3 中级的面向对象编程 257

10.3.1 接口 257

10.3.2 抽象类 261

10.3.3 类的扩展 263

10.4 命名空间冲突和类型别名 266

10.5 本章小结 267

10.6 小测验——升级 268

第11章 特殊集合类型和LINQ 269

11.1 栈 269

11.1.1 出栈(Pop)和查看栈顶(Peek) 273

11.1.2 常用方法 274

11.2 队列 275

11.3 哈希集 277

11.4 关于中级集合的小结 279

11.5 用LINQ查询数据 280

11.5.1 LINQ基础 280

11.5.2 lambda表达式 283

11.5.3 链式查询 284

11.5.4 将数据转换为新类型 285

11.5.5 用可选语法化简 286

11.6 本章小结 288

11.7 小测验——中级的集合 288

第12章 保存、加载与数据序列化 289

12.1 数据格式 289

12.1.1 解构XML 290

12.1.2 解构JSON 291

12.2 了解文件系统 293

12.2.1 使用资产路径 295

12.2.2 创建或删除目录 297

12.2.3 创建、更新、删除文件 299

12.3 使用数据流 305

12.3.1 管理数据流资源 306

12.3.2 使用StreamWriter与StreamReader 306

12.3.3 创建一个XMLWriter 310

12.3.4 自动关闭数据流 313

12.4 数据序列化 314

12.4.1 序列化和反序列化XML 315

12.4.2 序列化和反序列化JSON 319

12.5 数据汇总 325

12.6 本章小结 326

12.7 小测验——数据管理 326

第13章 探索泛型、委托以及更多 327

13.1 泛型 327

13.1.1 泛型类 328

13.1.2 泛型方法 330

13.1.3 约束类型参数 333

13.1.4 向Unity对象添加泛型 336

13.2 委托行动 337

13.2.1 创建调试委托 337

13.2.2 将委托作为参数类型 339

13.3 触发事件 340

13.3.1 创建并调用事件 341

13.3.2 处理事件订阅 342

13.3.3 清理事件订阅 344

13.4 处理异常 345

13.4.1 抛出异常 345

13.4.2 使用try-catch语句 347

13.5 本章小结 350

13.6 小测验——中级 C# 350

第14章 旅程继续 351

14.1 有待更深入的知识 351

14.2 牢记面向对象编程 352

14.3 设计模式入门 353

14.4 走进Unity项目 353

14.5 本书未提及的Unity特性 354

14.6 下一步的学习 354

14.6.1 C#资源 354

14.6.2 Unity资源 355

14.6.3 Unity认证 355

14.7 英雄的试炼 —— 向全世界展示 356

14.8 本章小结 357

小测验答案 359


前言/序言

Unity 是世界上最受欢迎的游戏引擎之一,它适用于业余爱好者、专业3A工作室和电影制作公司。尽管Unity常以其作为3D工具的使用而闻名,但它还有诸多专有功能,为2D游戏、虚拟现实、影视后期制作、跨平台发布等内容生产提供支持。

开发者喜欢Unity的拖放界面和内置功能,但真正让Unity更上一层楼的,是因其能为行为和游戏机制编写自定义C#脚本。学习编写C#代码对于已熟悉其他语言、经验丰富的程序员来说可能不是一个巨大的障碍,但对于那些没有编程经验的人来说,可能会是令人生畏的。本书的意义在,将带你从零开始学习编程的和C#语言的基本知识,并同时在Unity中构建一个有趣且可玩的游戏原型。

本书读者对象

本书主要面向没有编程基础或C#语言经验的人群。然而,无论你是C#语言或其他编程语言的编程老手,还是编程初学者,只要想尝试在Unity中动手实践进行游戏开发,那么本书就正是你所需要的。

本书主要内容

第1章“了解开发环境”,介绍了Unity安装过程、Unity编辑器的主要功能、如何查阅C#和 Unity特定主题的文档。以及如何从Unity编辑器创建C#脚本,并初步了解如何使用Visual Studio,Visual Studio是进行所有的代码编辑工作的地方。

第2章“编程的基本构建块”,从列举编程的原子级概念开始,将变量、方法和类与日常生活中的事物联系起来。然后,介绍了简单的调试技巧、如何进行正确的格式设置和注释,以及Unity是如何将C#脚本转换为组件的。

第3章“深入了解变量、类型和方法”,在第2章的基础上进行更深入的讲解,内容包括C#的数据类型、命名规则、访问修饰符等其他编程基础内容。还介绍了如何更有效地编写方法、使用参数和返回类型。最后,对属于MonoBehaviour类的标准Unity方法进行了概述。

第4章“控制流和集合类型”,介绍了在代码中做决策的常用方法,包括if-else和switch语句。然后介绍了如何使用数组、列表和字典,并结合迭代语句来循环遍历集合类型。在本章的最后,介绍了条件循环语句和一个称为枚举的特殊C#数据类型。

第5章“使用类、结构体以及面向对象编程”,在本章首次接触如何构建和实例化类和结构体。还介绍创建构造函数、添加变量和方法的基本步骤,以及如何使用子类和继承的基础知识。最后,全面诠释了面向对象编程及其在C#中的应用。

第6章“亲手实践Unity”,标志着我们从C#语法进入游戏设计、关卡构建和Unity特色工具的世界。首先从了解游戏设计文档的基础知识开始,然后进行游戏关卡的几何布局,并添加光照和简单的粒子系统。

第7章“角色移动、摄像机以及碰撞”,讲解了使玩家对象移动和设置第三人称摄像机的不同方法,还介绍了如何通过Unity物理引擎获得更逼真的运动效果,如何使用碰撞体组件以及如何捕获场景中的交互。

第8章“游戏机制脚本编写”,介绍了游戏机制的概念以及如何有效地实现游戏机制。从添加简单的跳跃动作开始,然后创建射击机制,并基于前几章的代码添加处理道具收集的逻辑。

第9章“AI基础与敌人行为”,简要概述了游戏中的人工智能以及应用于Hero Born示例中的相关概念。涵盖的主题包括Unity中的地图导航、使用关卡几何结构和导航网格、智能代理,以及敌人自动移动等。

第10章“重睹类型、方法和类”,更深入地讲解了有关数据类型、中级的方法特性以及可用于更复杂类的附加行为。本章带领读者进一步了解C#语言的功能多样性和广度。

第11章“特殊集合类型和LINQ”,深入探讨了栈、队列和哈希集,以及它们分别适合的不同开发场景。此外,本章还探讨了如何使用LINQ(语言集成查询)对数据集合进行过滤、排序、变换等。

第12章“保存、加载与数据序列化”,着重介绍了如何处理游戏信息。话题涵盖了如何操作文件系统,以及如何创建、删除、更新文件等。此外还介绍了如何处理如XML、JSON、二进制数据等不同的数据类型,并在最后实践部分讨论如何将C#对象直接序列化为对应的数据格式。

第13章“探索泛型、委托以及更多”,详细介绍了C#语言的中级特性以及如何在实战中应用它们。从泛型编程的概述开始,逐步介绍了委托、事件和异常处理等概念。

第14章“旅程继续”,回顾了整本书中所学的主要主题,并提供了进一步学习C#和Unity的资源。这些资源包括在线阅读材料、认证信息和一些推荐的视频教程频道。

如何充分地利用好本书

为了能在即将到来的C#和Unity旅程中获得最大收益,你唯一需要的是保持好奇心和学习意愿。话虽如此,如果你希望巩固所学知识,那么完成所有的代码练习、“英雄的试炼”和“小测验”等部分是必须的。最后,在继续学习新知识之前,重温已学过的知识点或整个章节来刷新或巩固理解不失为一个好主意。毕竟,在不稳定的地基上建造房子是没有意义的。

此外,还需要在计算机上安装当前版本的Unity——建议使用2022或更新版本。所有代码示例均已在Unity 2022.1上进行了测试,它们应该可以在未来的版本中正常运行。


本书涉及的软件和硬件

Unity 2022.1 或更高版本

Visual Studio 2019 或更高版本

C# 8.0 或更高版本

本书的代码库和彩图可扫描封底二维码下载。