目录 第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 泛型集合 ............................................................................ 166 7.3.2 Dictionary 泛型集合 .............................................. 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