目录
第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