![](https://www.wditl.com/wp-content/uploads/2023/06/1686903661-78805a221a988e7.png)
内容摘要
本书以游戏开发案例为主线,把C#语言和游戏引擎相结合,系统讲解C#语言、Unity游戏引擎及C#语言在游戏开发中的应用。本书分为上下两篇,上篇全面系统地讲解Visual Studio 2019开发环境下C#程序设计的基础知识,内容包括C#程序设计基础,数据类型,流程控制,类与对象,接口、委托与事件,目录与文件管理,WinForm应用程序开发;下篇讲解C#在Unity游戏引擎中的应用,包括认识Unity游戏引擎、C#脚本语言、交互和物理引擎、动画与UGUI、Unity游戏开发综合案例、Unity游戏开发中常见的设计模式等。本书内容与实例紧密结合,便于读者在应用中理解知识,达到学以致用的目的。本书提供完整的课程资源包,包括案例源代码、课件PPT、实验手册、教学视频等。
目录
上篇 C#程序设计语言
第1章 C#程序设计基础 1
1.1 C#语言概述 2
1.1.1 .NET概述 2
1.1.2 .NET Framework 2
1.1.3 C#语言 3
1.1.4 编译与运行C#应用程序 3
1.1.5 Visual Studio 2019 简介 4
1.1.6 Visual Studio 2019 系统要求 6
1.2 实验一 编写第一个C#程序 7
1.3 C#程序的基本结构 12
1.3.1 程序结构 12
1.3.2 代码编写 14
1.3.3 编译与运行 14
1.4 实验二 简易输出游戏信息 15
1.5 实验三 输出坦克模型 16
本章小结 17
习题 17
第2章 数据类型 18
2.1 基本数据类型 18
2.1.1 值类型 18
2.1.2 引用类型 23
2.1.3 指针类型 24
2.2 变量与常量 24
2.2.1 变量 24
2.2.2 常量 25
2.3 运算符与表达式 26
2.3.1 运算符及其分类 26
2.3.2 算术运算符 26
2.3.3 赋值运算符 28
2.3.4 位运算符 28
2.3.5 关系运算符 29
2.3.6 逻辑运算符 29
2.3.7 混合运算优先级 30
2.4 数据类型转换 31
2.4.1 隐式转换 31
2.4.2 显式转换 32
2.5 数组 33
2.5.1 数组的定义 33
2.5.2 数组的初始化 34
2.5.3 数组的应用 35
2.6 字符串 37
2.6.1 删除字符串空格 38
2.6.2 字符串英文字母大小写转换方法 39
2.6.3 判断子字符串是否出现在字符串的开头或结尾 39
2.6.4 比较字符串 40
2.6.5 插入或删除字符串 41
2.7 实验一 数字加密游戏设计 42
2.8 实验二 推箱子游戏设计 43
本章小结 49
习题 49
第3章 流程控制 50
3.1 流程控制的基础知识 50
3.2 条件语句 51
3.2.1 if语句 52
3.2.2 if语句的嵌套 55
3.2.3 switch语句 56
3.3 循环语句 58
3.3.1 while语句 58
3.3.2 do…while语句 59
3.3.3 for语句 60
3.3.4 3种循环语句的比较 61
3.4 跳转语句 61
3.4.1 break语句 62
3.4.2 continue语句 63
3.4.3 goto语句 64
3.5 实验一 绘制彩虹圆饼 64
3.6 实验二 简单客车售票系统 66
本章小结 68
习题 68
第4章 类与对象 70
4.1 类与对象概述 70
4.1.1 类与对象的基本概念 71
4.1.2 类、方法和变量 71
4.1.3 对象的创建及使用 73
4.2 类的方法与属性 74
4.2.1 方法的定义 74
4.2.2 方法调用 75
4.2.3 方法中的参数传递 76
4.2.4 方法重载 80
4.3 构造函数和析构函数 81
4.3.1 构造函数 82
4.3.2 析构函数 84
4.4 封装性 85
4.4.1 封装概述 85
4.4.2 属性 85
4.4.3 索引器 87
4.5 类的继承 89
4.5.1 继承概述 89
4.5.2 Base的使用 90
4.6 多态 92
4.6.1 多态概述 92
4.6.2 实现多态的方式 92
4.6.3 虚方法与重写 93
4.6.4 抽象类与抽象方法 95
4.7 实验一 简易猜拳游戏 96
4.8 实验二 系统登录用户类的编写 100
本章小结 101
习题 101
第5章 接口、委托与事件 103
5.1 接口 103
5.1.1 接口的概念 103
5.1.2 接口的声明 104
5.1.3 接口的应用 104
5.2 委托 106
5.2.1 委托的定义 106
5.2.2 委托的声明 107
5.2.3 委托的应用 107
5.2.4 匿名方法 111
5.3 事件 112
5.3.1 事件的定义 112
5.3.2 事件的使用 112
5.4 实验 委托、事件与继承 114
本章小结 130
习题 130
第6章 目录与文件管理 132
6.1 System.IO命名空间 132
6.2 目录管理 133
6.2.1 目录的创建、删除与移动 134
6.2.2 FolderBrowserDialog控件 138
6.3 文件管理 140
6.3.1 文件复制、删除与移动 140
6.3.2 文件属性与设置 142
6.4 文件的读写 144
6.4.1 文件和流 144
6.4.2 文件的打开 144
6.4.3 文本文件的读写 144
6.4.4 二进制文件的读写 146
6.5 实验 编写贪吃蛇游戏 147
本章小结 149
习题 150
第7章 WinForm应用程序开发 151
7.1 WinForm编程基础 151
7.1.1 创建WinForm 152
7.1.2 窗体的基本操作 154
7.1.3 控件的常用属性、方法和事件 157
7.1.4 Button控件 160
7.1.5 Label控件与LinkLabel控件 161
7.1.6 TextBox控件 161
7.1.7 PictureBox控件 162
7.1.8 Timer控件 162
7.1.9 容器类控件 163
7.1.10 RadioButton控件 163
7.1.11 CheckBox控件 164
7.1.12 MenuStrip控件 165
7.1.13 对话框设计 169
7.2 实验一 游戏登录与注册设计 171
7.3 实验二 简易计算器的设计 176
本章小结 179
习题 179
下篇 C#在Unity游戏引擎中的应用
第8章 认识Unity游戏
引擎 182
8.1 Unity简介 182
8.1.1 Unity概述 182
8.1.2 Unity的发展历程 183
8.1.3 Unity的版本 183
8.2 Unity的基本功能 184
8.2.1 Unity引擎自身的基本功能 184
8.2.2 Unity引擎编辑器的基本功能 184
8.3 实验 下载、安装与激活Unity 185
8.4 运行Unity 189
8.4.1 创建工程文件 189
8.4.2 Unity编辑器 191
8.4.3 Unity编辑器窗口布局 193
8.4.4 工程存储 194
8.5 工具栏 195
8.5.1 转换工具 196
8.5.2 转换辅助工具 196
8.5.3 播放控制工具 197
8.5.4 其他辅助工具 197
本章小结 197
习题 197
第9章 C#脚本语言 198
9.1 创建脚本 198
9.1.1 什么是脚本语言 198
9.1.2 C#脚本语言与C#语言的区别和联系 199
9.1.3 C#脚本文件 199
9.1.4 创建C#脚本文件的方法 199
9.2 脚本编辑器 199
9.3 常用的事件方法 201
9.3.1 默认的事件方法 201
9.3.2 其他常用的事件方法 201
9.4 实验一 创建一个Hello World程序 201
9.5 常用组件 206
9.5.1 访问绑定对象的组件 206
9.5.2 访问外部对象的组件 207
9.5.3 Transform组件 208
9.6 Time类 210
9.7 协程 211
9.8 实验二 用C#脚本语言编写小游戏 212
本章小结 214
习题 214
第10章 交互和物理引擎 215
10.1 Input输入管理 215
10.1.1 获取键盘输入 215
10.1.2 获取鼠标输入 217
10.1.3 GetAxis()方法 218
10.2 实验一 使用鼠标和键盘控制游戏对象的移动 220
10.3 实验二 用键盘和鼠标控制棋子运动 221
10.4 刚体及其常用方法 225
10.4.1 AddForce()方法 225
10.4.2 AddRelativeForce()方法 226
10.4.3 FixedUpdate()方法 227
10.5 综合实验:打砖块游戏 227
本章小结 230
习题 230
第11章 动画与UGUI 231
11.1 Animation 231
11.2 Animator 232
11.2.1 Animator组件 233
11.2.2 Animator Controller 233
11.2.3 动画状态机 233
11.2.4 动画过渡 234
11.3 UGUI 237
11.3.1 Sprite 237
11.3.2 Canvas 238
11.3.3 Image和Raw Image 238
11.3.4 Panel 238
11.3.5 Text 239
11.3.6 Button 239
11.3.7 Toggle 241
11.3.8 Slider和ScrollBar 241
本章小结 242
习题 242
第12章 Unity游戏开发综合案例 243
12.1 贪吃蛇游戏开发 243
12.1.1 游戏场景搭建 243
12.1.2 游戏主体控制 244
12.1.3 摄像机跟随 247
12.1.4 控制蛇吃食物 247
12.1.5 控制蛇身体变化 249
12.2 添加其他元素 250
12.2.1 显示积分 250
12.2.2 添加音效 253
12.3 发布游戏 254
12.3.1 应用程序打包 254
12.3.2 发布到Android平台 255
12.4 游戏场景的修饰 256
12.4.1 Logo动画制作 256
12.4.2 MainScene制作 258
12.4.3 场景加载 261
本章小结 265
习题 265
第13章 Unity游戏开发中常见的设计模式 266
13.1 单例模式 266
13.2 观察者模式 269
13.2.1 观察者模式中的角色 269
13.2.2 观察者模式的优缺点 269
本章小结 271
习题 271
参考文献 272