图书目录

目    录

第Ⅰ部分  编程基础与C#

第1章  了解环境   3

1.1  一些基本前提   4

1.2  从Unity 2019开始   4

1.2.1  创建新项目   5

1.2.2  浏览编辑器   6

1.3  在Unity中使用C#   7

1.3.1  使用C#脚本   7

1.3.2  Visual Studio编辑器   9

1.3.3  同步C#文件   10

1.4  文档   10

1.4.1  访问Unity文档   10

1.4.2  查找C#资源   12

1.5  小测验——处理脚本   13

1.6  本章小结   14

第2章  编程的构成要素   15

2.1  定义变量   16

2.1.1  变量的名称很重要   16

2.1.2  将变量作为占位符   17

2.2  疯狂的方法   19

2.2.1  方法驱动行为   20

2.2.2  方法也是占位符   20

2.3  类的引入   22

2.3.1  一直在使用类   22

2.3.2  日常蓝图   22

2.4  注释是关键   23

2.5  将脚本附加到游戏对象上   25

2.5.1  脚本成为组件   25

2.5.2  来自MonoBehaviour的帮助   26

2.6  类与组件通信   26

2.7  小测验——C#的构成要素   27

2.8  本章小结   27

第3章  深入研究变量、类型和方法   29

3.1  编写正确的C#代码   29

3.2  简单的调试技术   31

3.3  变量的语法   31

3.3.1  声明类型和值   32

3.3.2  仅声明类型   32

3.4  访问修饰符   33

3.5  使用类型   34

3.5.1  通用内置类型   34

3.5.2  类型转换   37

3.5.3  推断式声明   37

3.5.4  自定义类型   38

3.5.5  类型综述   38

3.6  命名变量   38

3.7  变量的作用域   39

3.8  运算符   40

3.9  小测验——变量和类型   42

3.10  定义方法   42

3.11  指定参数   46

3.12  指定返回值   47

3.13  常见的Unity方法   50

3.13.1  Start方法   50

3.13.2  Update方法   50

3.14  小测验——理解方法   51

3.15  本章小结   51

第4章  流程控制与集合类型   53

4.1  选择语句   54

4.1.1  if-else语句   54

4.1.2  switch语句   60

4.1.3  小测验——if语句、逻辑非运算符和AND/OR逻辑运算符   64

4.2  集合一览   64

4.2.1  数组   64

4.2.2  列表   66

4.2.3  字典   68

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

4.3  迭代语句   71

4.3.1  for循环   72

4.3.2  foreach循环   74

4.3.3  while循环   76

4.3.4  超越无限   78

4.4  本章小结   78

第5章  使用类、结构体和OOP   79

5.1  定义类   80

5.1.1  基本语法   80

5.1.2  实例化类对象   81

5.1.3  添加类字段   81

5.1.4  使用构造函数   83

5.1.5  声明类方法   85

5.2  什么是结构体   86

5.3  类与结构体   88

5.3.1  引用类型   88

5.3.2  值类型   89

5.4  面向对象思想   90

5.4.1  封装   91

5.4.2  继承   92

5.4.3  组合   94

5.4.4  多态   95

5.4.5  OOP总结   96

5.5  在Unity中使用OOP   96

5.5.1  对象是集合起来的行为   96

5.5.2  获取组件   97

5.6  小测验——OOP的相关内容   101

5.7  本章小结   101

第Ⅱ部分  在Unity中编写游戏机制

第6章  亲自上手使用Unity   105

6.1  游戏设计入门   106

6.1.1  游戏设计文档   106

6.1.2  Hero Born游戏的单页文档   107

6.2  构建关卡   107

6.2.1  创建基本图形   108

6.2.2  在三维中思考   109

6.2.3  材质   110

6.2.4  白盒环境   112

6.3  光照基础   118

6.3.1  创建光源   118

6.3.2  Light组件的属性   119

6.4  在Unity中制作动画   120

6.4.1  创建动画片段   120

6.4.2  记录关键帧   122

6.4.3  曲线与切线   124

6.5  粒子系统   125

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

6.7  本章小结   127

第7章  移动、相机控制与碰撞   129

7.1  移动玩家   129

7.1.1  玩家对象的创建   130

7.1.2  理解向量   131

7.1.3  获取玩家输入   133

7.2  相机跟随   136

7.3  使用Unity的物理系统   138

7.3.1  刚体运动   140

7.3.2  碰撞体和碰撞   143

7.3.3  使用碰撞体触发器   147

7.3.4  总结   150

7.4  小测验——玩家控制与物理系统   150

7.5  本章小结   150

第8章  编写游戏机制   153

8.1  添加跳跃   154

8.1.1  了解枚举   154

8.1.2  使用层遮罩   157

8.2  发射投射物   162

8.2.1  实例化对象   163

8.2.2  管理游戏对象的创建   166

8.3  游戏管理器   168

8.3.1  维护玩家属性   168

8.3.2  get和set属性   169

8.4  精益求精   173

8.4.1  图形用户界面   174

8.4.2  胜败条件   177

8.4.3  使用预编译指令和命名空间   180

8.5  小测验——游戏机制   182

8.6  本章小结   183

第9章  人工智能基础和敌人行为   185

9.1  Unity导航系统   186

9.2  移动敌人代理   189

9.3  敌人游戏机制   197

9.4  重构代码以避免代码重复   205

9.5  小测验——人工智能和导航系统   206

9.6  本章小结   207

第Ⅲ部分  提升你的C#代码

第10章  回顾类型、方法和类   211

10.1  访问修饰符再探   211

10.1.1  常量和只读属性   212

10.1.2  使用static关键字   212

10.2  方法再探   215

10.2.1  方法重载   215

10.2.2  ref参数   217

10.2.3  out参数   219

10.3  OOP 回顾   220

10.3.1  接口   220

10.3.2  抽象类   223

10.3.3  类的扩展   224

10.3.4  命名空间回顾   227

10.4  小测试——提升   228

10.5  本章小结   228

第11章  探索泛型、委托等   229

11.1  泛型介绍   229

11.1.1  泛型对象   230

11.1.2  泛型方法   232

11.1.3  约束类型参数   235

11.2  委托行为   236

11.2.1  基本语法   236

11.2.2  将委托作为参数类型   239

11.3  发送事件   241

11.3.1  基本语法   241

11.3.2  处理事件订阅   243

11.4  异常处理   245

11.4.1  抛出异常   245

11.4.2  使用try-catch语句   248

11.5  初步了解设计模式   251

11.6  小测验:C#中级主题   252

11.7  本章小结   252

第12章  旅行继续   253

12.1  有待深入   253

12.2  记住面向对象编程   254

12.3  了解Unity项目   255

12.4  开展进一步学习   255

12.4.1  C#资源   256

12.4.2  Unity资源   256

12.4.3  Unity认证   256

12.5  本章小结   257

附录部分(请扫描封底二维码获取)

附录A  完整的游戏代码文件

附录B  辅助类

附录C  小测验答案