目 录
第1章 Unity中的C#语言......................................................................................... 1
1.1 为何选择C#语言.................................................................................... 1
1.2 创建脚本文件........................................................................................ 2
1.3 脚本的实例化操作................................................................................. 4
1.4 变量...................................................................................................... 6
1.5 条件语句............................................................................................... 7
1.5.1 if语句.......................................................................................... 8
1.5.2 switch语句................................................................................. 10
1.6 数组..................................................................................................... 13
1.7 循环..................................................................................................... 16
1.7.1 foreach循环................................................................................ 16
1.7.2 for循环...................................................................................... 17
1.7.3 while循环.................................................................................. 18
1.7.4 无限循环.................................................................................... 20
1.8 函数..................................................................................................... 20
1.9 事件..................................................................................................... 23
1.10 类和面向对象程序设计....................................................................... 24
1.11 类和继承机制..................................................................................... 26
1.12 类和多态............................................................................................ 28
1.13 C#属性............................................................................................... 32
1.14 注释................................................................................................... 34
1.15 变量的可见性..................................................................................... 37
1.16 ?操作符.............................................................................................. 38
1.17 SendMessage和BroadcastMessage......................................................... 38
1.18 本章小结............................................................................................ 40
第2章 调试机制..................................................................................................... 41
2.1 编译错误和控制台................................................................................ 41
2.2 利用Debug.Log进行调制——定制消息................................................. 44
2.3 覆写ToString方法................................................................................ 46
2.4 可视化调试.......................................................................................... 50
2.5 错误日志.............................................................................................. 52
2.6 编辑器调试.......................................................................................... 56
2.7 使用分析工具....................................................................................... 59
2.8 基于MonoDevelop的调试..................................................................... 62
2.9 Watch窗口........................................................................................... 66
2.10 恢复执行程序和步进操作................................................................... 70
2.11 调用栈............................................................................................... 71
2.12 Immediate窗口................................................................................... 73
2.13 设置条件断点..................................................................................... 74
2.14 跟踪点............................................................................................... 76
2.15 本章小结............................................................................................ 78
第3章 单例模式、静态模式、GameObject 以及场景世界...................................... 79
3.1 GameObject对象.................................................................................. 79
3.2 组件间的交互方式................................................................................ 81
3.2.1 GetComponent函数..................................................................... 82
3.2.2 获取多个组件............................................................................. 83
3.2.3 组件和消息................................................................................ 84
3.3 GameObject和场景世界........................................................................ 85
3.3.1 获取GameObject......................................................................... 86
3.3.2 对象比较.................................................................................... 88
3.3.3 获取*近对象............................................................................. 88
3.3.4 获取特定类型的对象.................................................................. 89
3.3.5 GameObject之间的路径.............................................................. 90
3.3.6 访问对象的层次结构.................................................................. 92
3.4 场景、时间和更新操作......................................................................... 93
3.4.1 规则1——帧的重要性................................................................ 95
3.4.2 规则2——相对于时间的运动..................................................... 95
3.5 永久对象.............................................................................................. 96
3.6 理解单例模式和静态模式..................................................................... 98
3.7 本章小结............................................................................................ 101
第4章 事件驱动程序设计..................................................................................... 102
4.1 事件................................................................................................... 102
4.2 事件管理............................................................................................ 106
4.2.1 基于接口的事件管理................................................................. 107
4.2.2 定义EventManager.................................................................... 109
4.3 MonoDevelop中的代码折叠——#region和#endregion........................... 114
4.3.1 使用EventManager.................................................................... 115
4.3.2 基于委托机制的替代方案.......................................................... 116
4.3.3 MonoBehaviour事件.................................................................. 121
4.3.4 鼠标事件.................................................................................. 122
4.3.5 应用程序焦点和暂停................................................................. 125
4.4 本章小结............................................................................................ 127
第5章 相机、渲染和场景..................................................................................... 128
5.1 相机Gizmo......................................................................................... 128
5.2 可见性............................................................................................... 131
5.2.1 检测对象的可见性.................................................................... 132
5.2.2 关于对象可见性的其他问题...................................................... 133
5.2.3 视锥体测试——渲染器............................................................. 134
5.2.4 视锥体测试——点.................................................................... 135
5.2.5 视锥体测试——遮挡................................................................. 136
5.2.6 相机前、后视觉........................................................................ 137
5.3 正交相机............................................................................................ 138
5.4 相机渲染和后处理.............................................................................. 142
5.5 相机震动............................................................................................ 148
5.6 相机和动画........................................................................................ 150
5.7 相机和曲线........................................................................................ 152
5.8 本章小结............................................................................................ 158
第6章 与Mono协同工作..................................................................................... 159
6.1 表和集合............................................................................................ 160
6.1.1 List类....................................................................................... 160
6.1.2
Dictionary类............................................................................. 163
6.1.3 Stack类.................................................................................... 164
6.2 IEnumerable和IEnumerator接口......................................................... 166
6.3 字符串和正则表达式.......................................................................... 172
6.3.1 null、空字符串和空格............................................................... 172
6.3.2 字符串比较............................................................................... 173
6.3.3 字符串的格式化........................................................................ 174
6.3.4 字符串循环............................................................................... 175
6.3.5 创建字符串............................................................................... 176
6.3.6 搜索字符串............................................................................... 176
6.3.7 正则表达式............................................................................... 176
6.4 无穷参数............................................................................................ 178
6.5 语言集成查询..................................................................................... 178
6.6 Linq和正则表达式.............................................................................. 181
6.7 与文本数据资源协同工作................................................................... 182
6.8 从本地文件中加载文本数据................................................................ 184
6.8.1 从INI文件中加载文本数据....................................................... 185
6.8.2 从CVS文件中加载文本数据..................................................... 187
6.8.3 从Web中加载文本数据............................................................ 187
6.9 本章小结............................................................................................ 188
第7章 人工智能................................................................................................... 189
7.1 游戏中的人工智能.............................................................................. 189
7.2 开始项目............................................................................................ 191
7.3 烘焙导航网格..................................................................................... 192
7.4 NPC主体对象.................................................................................... 195
7.5 Mecanim中的有限状态机.................................................................... 198
7.6 C#语言中的有限状态机...................................................................... 202
7.7 构建Idle状态..................................................................................... 204
7.8 构建Patrol状态.................................................................................. 207
7.9 构建Chase状态.................................................................................. 211
7.10 构建Attack状态............................................................................... 213
7.11 构建Seek-Health(或逃跑)状态....................................................... 214
7.12 本章小结.......................................................................................... 217
第8章 定制Unity编辑器...................................................................................... 219
8.1 批量重命名........................................................................................ 219
8.2 C#属性和反射.................................................................................... 224
8.3 颜色混合............................................................................................ 227
8.4 显示属性............................................................................................ 232
8.5 本地化............................................................................................... 238
8.6 本章小结............................................................................................ 246
第9章 与纹理、模型和2D元素协同工作.............................................................. 247
9.1 天空盒............................................................................................... 247
9.2 过程式网格........................................................................................ 252
9.3 UV动画——纹理滚动........................................................................ 259
9.4 纹理绘制............................................................................................ 261
9.4.1 创建纹理混合着色器................................................................. 262
9.4.2 创建纹理绘制脚本.................................................................... 265
9.4.3 设置纹理绘制........................................................................... 272
9.5 本章小结............................................................................................ 275
第10章 资源控制和其他....................................................................................... 276
10.1 Git——资源控制............................................................................... 276
10.1.1 下载....................................................................................... 277
10.1.2 构建Unity项目....................................................................... 278
10.1.3 基于源控制配置Unity............................................................. 279
10.1.4 构建Git存储库....................................................................... 280
10.1.5 忽略文件................................................................................ 281
10.1.6 创建首次提交......................................................................... 282
10.1.7 修改文件................................................................................ 284
10.1.8 从存储库中获取文件............................................................... 285
10.1.9 浏览存储库............................................................................. 288
10.2 资源文件夹和外部文件..................................................................... 289
10.3 AssetBundles和外部文件................................................................... 290
10.4 持久数据和游戏保存......................................................................... 294
10.5 本章小结.......................................................................................... 298