图书目录

目录

第1 篇 开发环境的准备

第1 章 安装Unity Hub 与Unity 编辑器....................................... 3

1.1 注册账号与激活许可证 ................................................................................... 3

1.1.1 注册Unity 账号 ................................................................................... 3

1.1.2 激活许可证 .......................................................................................... 4

1.2 Unity Hub 的安装与登录 ................................................................................. 6

1.2.1 Unity Hub 的下载与安装 ..................................................................... 6

1.2.2 Unity Hub 的登录与管理 ..................................................................... 7

1.3 Unity 编辑器的下载与安装 .............................................................................. 8

1.3.1 Unity 编辑器偏好设置 ......................................................................... 8

1.3.2 Unity 编辑器的下载 ............................................................................. 9

1.3.3 Unity 编辑器的安装 ........................................................................... 10

1.3.4 Unity 编辑器的版本管理 .................................................................... 11

习题 ....................................................................................................................... 12

第2 章 Unity 编辑器的窗口布局和常用视图 .............................. 14

2.1 Unity 编辑器的窗口布局 ............................................................................... 14

2.1.1 新建项目 ........................................................................................... 14

2.1.2 默认窗口布局 .................................................................................... 14

2.1.3 自定义窗口布局 ................................................................................ 15

2.2 常用窗口与视图 ............................................................................................ 18

2.2.1 Hierarchy 窗口 .................................................................................. 18

2.2.2 Scene 视图 ....................................................................................... 18

2.2.3 Project 窗口 ...................................................................................... 21

2.2.4 Inspector 窗口 .................................................................................. 21

目 录

虚拟现实程序设计(C# 版)

IV

2.2.5 Game 视图 ........................................................................................ 22

2.2.6 Console 窗口 .................................................................................... 22

习题 ....................................................................................................................... 22

第3 章 创建第1 个Unity 项目 .................................................. 25

3.1 新建Unity 项目 ............................................................................................. 25

3.1.1 新建3D 项目 ..................................................................................... 25

3.1.2 设置Unity 编辑器外观偏好 ............................................................... 26

3.2 设置背景参数 ................................................................................................ 27

3.2.1 修改场景名称 .................................................................................... 27

3.2.2 设置背景颜色 .................................................................................... 28

3.3 设置游戏背景 ................................................................................................ 28

3.3.1 添加游戏背景 .................................................................................... 28

3.3.2 添加材质球 ........................................................................................ 30

3.3.3 调整背景位置参数 ............................................................................. 35

3.4 UI 设计 .......................................................................................................... 36

3.4.1 添加游戏倒计时提示 ......................................................................... 36

3.4.2 添加游戏难度等级提示 ...................................................................... 38

3.4.3 添加计时器和积分提示 ...................................................................... 40

3.4.4 游戏暂停按钮 .................................................................................... 42

3.4.5 重新开始游戏提示 ............................................................................. 43

3.5 资源包的使用 ................................................................................................ 45

习题 ....................................................................................................................... 45

第2 篇 虚拟现实程序设计基础

第4 章 C# 基础概念 .................................................................. 49

4.1 命名空间与程序入口 ..................................................................................... 49

4.1.1 命名空间 ........................................................................................... 49

4.1.2 Main( ) 方法 ....................................................................................... 54

4.1.3 访问修饰符 ........................................................................................ 57

4.2 属性 .............................................................................................................. 58

V

目 录

4.2.1 属性的概念 ........................................................................................ 58

4.2.2 属性的使用 ........................................................................................ 58

4.2.3 属性与常量 ........................................................................................ 61

4.2.4 属性的实战演练 ................................................................................ 64

4.3 方法 .............................................................................................................. 67

4.3.1 方法的声明 ........................................................................................ 67

4.3.2 方法的调用 ........................................................................................ 68

4.3.3 方法的返回值 .................................................................................... 68

4.3.4 方法的参数类型 ................................................................................ 68

4.3.5 方法的种类 ........................................................................................ 72

4.3.6 方法的实战演练 ................................................................................ 75

4.4 结构 .............................................................................................................. 77

4.4.1 结构概述 ........................................................................................... 77

4.4.2 结构的使用 ........................................................................................ 78

4.4.3 结构的实战演练 ................................................................................ 79

4.5 类 .................................................................................................................. 82

4.5.1 类的概念 ........................................................................................... 82

4.5.2 类的声明 ........................................................................................... 86

4.5.3 常见的关键字 .................................................................................... 88

4.5.4 嵌套类 ............................................................................................... 91

4.5.5 类的实战演练 .................................................................................... 92

4.6 对象 .............................................................................................................. 95

4.6.1 对象的概念 ........................................................................................ 95

4.6.2 对象的创建和使用 ............................................................................. 97

4.6.3 this 关键字 ........................................................................................ 99

4.6.4 构造函数与析构函数 ....................................................................... 100

4.6.5 对象的封装 ...................................................................................... 103

4.6.6 类与对象关系 .................................................................................. 106

4.7 综合项目实战1——游戏准备倒计时 .......................................................... 106

4.7.1 新建脚本文件 .................................................................................. 106

4.7.2 编辑脚本文件 .................................................................................. 108

4.7.3 挂载脚本文件 .................................................................................. 109

习题 ..................................................................................................................... 110

虚拟现实程序设计(C# 版)

VI

第5 章 字符串与正则表达式 ................................................... 116

5.1 字符串 ......................................................................................................... 116

5.1.1 字符串的创建 .................................................................................. 116

5.1.2 比较字符串 ...................................................................................... 118

5.1.3 包含字符串 ...................................................................................... 118

5.1.4 获取子字符串 .................................................................................. 119

5.1.5 连接字符串 ...................................................................................... 120

5.1.6 字符串实战演练 .............................................................................. 121

5.2 正则表达式 ................................................................................................. 122

5.2.1 字符类元字符 .................................................................................. 123

5.2.2 转义字符 ......................................................................................... 123

5.2.3 定位符 ............................................................................................. 124

5.2.4 量词 ................................................................................................ 124

5.2.5 分组和捕获字符 .............................................................................. 124

5.2.6 零宽断言 ......................................................................................... 125

5.2.7 正则表达式实战演练1——匹配特定单词 ....................................... 127

5.2.8 正则表达式实战演练2——验证手机号码 ....................................... 128

5.2.9 正则表达式实战演练3——验证邮箱地址 ....................................... 129

5.3 综合项目实战2——计时器 ......................................................................... 131

5.3.1 创建脚本文件 .................................................................................. 131

5.3.2 挂载脚本文件 .................................................................................. 133

5.4 综合项目实战3——GUI 标签控制 .............................................................. 134

5.4.1 创建脚本文件 .................................................................................. 134

5.4.2 挂载脚本文件 .................................................................................. 135

习题 ..................................................................................................................... 136

第6 章 委托和事件 .................................................................. 139

6.1 委托的声明 ................................................................................................. 139

6.1.1 委托的概念 ...................................................................................... 139

6.1.2 委托的声明结构 .............................................................................. 139

6.2 委托的实例化 .............................................................................................. 140

6.2.1 常规实例化委托 .............................................................................. 140

VII

目 录

6.2.2 匿名方法实例化委托 ....................................................................... 140

6.2.3 使用Lambda 表达式实例化委托 .................................................... 141

6.3 委托的调用 ................................................................................................. 142

6.4 单播委托和多播委托 ................................................................................... 144

6.4.1 单播委托 ......................................................................................... 144

6.4.2 多播委托 ......................................................................................... 145

6.5 事件 ............................................................................................................ 147

6.6 委托实战演练 .............................................................................................. 148

6.7 综合项目实战4——水果发射器 .................................................................. 149

6.7.1 制作预制体 ...................................................................................... 149

6.7.2 制作水果发射器 .............................................................................. 150

6.8 综合项目实战5——切割轨迹 ..................................................................... 155

6.8.1 添加运动轨迹组件 ........................................................................... 155

6.8.2 创建脚本文件 .................................................................................. 156

6.8.3 编辑脚本文件 .................................................................................. 156

6.8.4 挂载脚本文件 .................................................................................. 161

习题 ..................................................................................................................... 162

第7 章 集合与泛型 .................................................................. 164

7.1 集合概述 ..................................................................................................... 164

7.2 非泛型集合 ................................................................................................. 164

7.2.1 ArrayList 集合 ................................................................................. 165

7.2.2 Hashtable 集合 ............................................................................... 165

7.3 泛型集合 ..................................................................................................... 165

7.3.1 List<T> 泛型集合 ............................................................................ 166

7.3.2 Dictionary<TKey, TValue> 泛型集合 .............................................. 166

7.4 集合的实战演练 .......................................................................................... 167

7.5 泛型集合实战演练 ....................................................................................... 172

7.6 综合项目实战6——切割泼溅效果 .............................................................. 173

7.6.1 创建脚本文件 .................................................................................. 174

7.6.2 编辑脚本文件 .................................................................................. 174

7.6.3 挂载脚本文件 .................................................................................. 175

习题 ..................................................................................................................... 176

虚拟现实程序设计(C# 版)

VIII

第8 章 常用接口 ..................................................................... 178

8.1 IEnumerator 接口 ........................................................................................ 178

8.2 ICollection 接口 .......................................................................................... 178

8.3 IList 接口 ..................................................................................................... 179

8.4 接口实战 ..................................................................................................... 179

8.5 综合项目实战7——关卡准备逻辑 .............................................................. 180

8.6 综合项目实战8——关卡结束 ..................................................................... 182

习题 ..................................................................................................................... 183

第3 篇 虚拟现实程序设计进阶

第9 章 数据结构基础 .............................................................. 187

9.1 队列 ............................................................................................................ 187

9.1.1 队列的概述 ...................................................................................... 187

9.1.2 队列的使用 ...................................................................................... 187

9.1.3 队列的实战 ...................................................................................... 189

9.2 栈 ................................................................................................................ 190

9.2.1 栈的概述 ......................................................................................... 190

9.2.2 栈的使用 ......................................................................................... 190

9.3 链表 ............................................................................................................ 192

9.3.1 链表的概述 ...................................................................................... 192

9.3.2 链表的使用 ...................................................................................... 192

9.4 字典(哈希表) ............................................................................................ 193

9.4.1 字典的概述 ...................................................................................... 193

9.4.2 字典的使用 ...................................................................................... 193

习题 ..................................................................................................................... 195

第10 章 算法基础 ................................................................... 197

10.1 排序算法 ................................................................................................... 197

10.1.1 冒泡排序算法 .............................................................................. 197

10.1.2 选择排序算法 .............................................................................. 198

10.1.3 插入排序算法 .............................................................................. 199

IX

目 录

10.2 查找算法 ................................................................................................... 199

10.2.1 线性查找算法 .............................................................................. 199

10.2.2 二分查找算法 .............................................................................. 200

10.2.3 字典序列查找算法 ....................................................................... 201

10.2.4 二分查找算法实战演练 ................................................................ 201

习题 ..................................................................................................................... 202

第11 章 异常处理和调试 ......................................................... 203

11.1 预处理指令 ............................................................................................... 203

11.1.1 可为空上下文 .............................................................................. 203

11.1.2 定义字符 ..................................................................................... 204

11.1.3 条件编译 ..................................................................................... 206

11.1.4 定义区域 ..................................................................................... 206

11.2 异常处理 ................................................................................................... 207

11.2.1 抛出异常 ..................................................................................... 207

11.2.2 捕获异常 ..................................................................................... 207

11.2.3 finally 代码块 ............................................................................... 208

11.2.4 多个catch 代码块 ....................................................................... 209

11.2.5 自定义异常 .................................................................................. 210

11.3 文件的输入/ 输出 ..................................................................................... 211

11.3.1 文件读取(Input) ........................................................................ 212

11.3.2 文件写入(Output) ..................................................................... 214

习题 ..................................................................................................................... 215

参考文献 .................................................................................... 217