C#游戏开发快速入门教程大学霸内部资料
C#游戏开发快速入门教程大学霸内部资料
前 言C#游戏开发快速入门教程大学霸内部资料
C#是微软发布的高级程序设计语言,这门语言和C语言一样,已经成为了大学计算机相关专业必学的一门语言。很多初学这门语言的同学,还以为C#只能开发Windows桌面应用程序了,写写ASP.NET网站。本书将为读者纠正这种观念,使用C#一样可以开发出精彩的游戏!
学过C#的人,可能接触过Visual Studio 2010或者此软件的其它版本,因此也应该接受一种观念,那就是:即使是开发Windows桌面应用,也需要有集成开发环境来辅助C#代码的编写。那么同理,使用C#编写游戏也需要有集成开发环境的辅助才行!本书选择的开发环境是Unity。
或许很多人对Unity并不了解,这里就做些简单的说明。Unity是由Unity Technologies开发的一个多平台的综合型的游戏开发工具。使用它开发的游戏可以运行在所有的主流游戏平台上,如,Windows、Xbox、Mac、iPhone、Windows Phone 8、Android等等。这款软件在国内业界的火热程度也不容忽视。
2014年4月13-14日,在北京国家会议中心举办的Unity亚洲开发者大会上,据Unity大中华区总裁符国新的介绍,自2012~2014年,短短2年时间,业务量就增长了10倍;在全球超过300万的开发者中,有1/4在中国;超过5000家游戏公司和工作室在使用Unity开发;Unity插件在全球有4亿次的下载量,仅中国就超过1亿次……
在大学已成为必修课的计算机语言,再加上最近火的一塌糊涂的游戏集成开发环境,没错!他们就是本书的全部。要开发游戏,C#需要学的有多精通才行?对Unity得多熟悉才行?得用多长时间才能做出一个能拿得出手的游戏?这些问题的答案在本书的各章节都有体现,读者只需慢慢体会就能明白,因为似乎仅仅用一个简单的否定词并不足以令读者信服。
1.学习所需的系统和软件
q 安装Windows 7操作系统
q 安装Unity 4.5.1
2.学习建议
大家学习之前,可以致信到xxxxxxxxxx,获取相关的资料和软件。如果大家在学习过程遇到问题,也可以将问题发送到该邮箱。我们尽可能给大家解决。
目 录C#游戏开发快速入门教程大学霸内部资料
第1章 使用C#编写游戏前的准备… 1
1.1 Unity概述… 1
1.1.1 Unity简介… 1
1.1.2 Unity的下载… 1
1.1.3 Unity的安装… 2
1.2 游戏项目… 4
1.3 查看特定组件的参考手册… 5
1.4 创建并编辑C#脚本… 7
2.1 构建游戏场景… 11
2.1.1 新建游戏场景… 11
2.1.2 添加游戏对象… 11
2.2 改变游戏对象的状态… 13
2.2.1 Main Camera与Game视图… 13
2.2.2 Transform组件… 14
2.2.3 直接操作游戏对象… 15
2.3 Scene视图的快捷操作… 16
2.4 使用脚本… 19
2.4.1 示例效果展示… 19
2.4.2 脚本的构成… 20
2.4.3 将脚本赋予游戏对象的方法… 22
2.4.4 运行游戏… 23
2.5 小结… 23
第3章 游戏对象的属性——变量… 24
3.1 游戏对象的属性… 24
3.2 指代数据的名称… 25
3.2.1 变量命名规则… 25
3.2.2 变量命名约定… 25
3.2.3 变量名与属性名的些许不同… 26
3.3 属性名的可见性… 26
3.4 设定属性的数据类型… 27
3.4.1 数据类型… 27
3.4.2 属性数据类型的体现形式… 28
3.5 使用脚本变量… 29
3.5.1 声明变量… 29
3.5.2 变量的初始化… 30
3.5.3 变量的运算… 30
3.5.4 成员变量… 31
3.5.5 变量的作用域… 32
3.6 语句… 33
3.7 游戏示例… 34
3.8 小结… 37
第4章 游戏对象的行为逻辑——方法… 38
4.1 游戏对象的行为逻辑… 38
4.2 脚本中的方法… 38
4.3 使用脚本方法… 39
4.3.1 方法与变量… 40
4.3.2 定义方法… 40
4.3.3 调用方法… 41
4.3.4 方法使用示例… 41
4.4 Unity内置的方法… 42
4.5 方法的参数… 44
4.5.1 参数的作用… 44
4.5.2 对于游戏的实际意义… 44
4.6 减少代码的重复书写… 46
4.7 游戏示例… 48
4.8 小结… 51
第5章 游戏执行路径的选择——判断… 52
5.1 游戏的执行路径… 52
5.2 判断玩家的选择… 52
5.2.1 最常用的判断语句——if 53
5.2.2 if语句游戏示例… 54
5.2.3 其它判断语句… 57
5.3 循环遍历每个数据,并做出判断… 58
5.3.1 大量数据的存储与引用… 59
5.3.2 遍历大量的数据… 62
5.4 游戏示例… 66
5.4.1 游戏运行效果… 66
5.4.2 游戏实现步骤… 67
5.4.3 游戏脚本的编写… 67
5.5 小结… 73
第6章 游戏对象间的交流… 74
6.1 在游戏外部的体现… 74
6.2 在游戏内部的体现… 75
6.3 点运算符… 76
6.3.1 对象、组件与类… 76
6.4 在脚本中使用点运算符… 77
6.4.1 访问组件自己的属性和方法… 77
6.4.2 访问同一对象上的其它组件… 78
6.4.3 访问其它对象上的组件… 80
6.5 游戏示例… 81
6.6 小结… 85
第7章 游戏的中枢——状态管理机制… 86
7.1 概述… 86
7.2 工作流程… 87
7.2.1 游戏状态… 87
7.2.2 将游戏控制权授予游戏状态… 87
7.2.3 游戏状态的切换… 88
7.2.4 实时记录当前所处的游戏状态… 88
7.3 类的实例化… 89
7.4 引入接口… 92
7.4.1 接口概述… 92
7.4.2 示例演示… 93
7.5 小结… 95
第8章 状态管理机制使用示例… 96
8.1 添加游戏状态… 96
8.2 核心脚本对游戏状态的控制… 98
8.2.1 核心脚本遇到的问题… 98
8.2.2 示例演示1. 99
8.2.3 示例演示2. 100
8.3 核心脚本里的OnGUI() 101
8.3.1 添加OnGUI() 102
8.3.2 示例演示1. 102
8.3.3 示例演示2. 104
8.4 游戏场景的切换… 105
8.4.1 添加游戏场景… 105
8.4.2 引入的问题及解决方法… 107
8.4.3 示例演示… 108
8.5 示例代码… 111
8.5.1 核心脚本… 111
8.5.2 接口IStateBase. 112
8.5.3 游戏状态… 112
8.6 小结… 115
第9章 游戏示例——胶囊的净化战争… 116
9.0 游戏剧情梗概… 116
9.1 搭建游戏的框架… 116
9.1.1 游戏运行流程图… 117
9.1.2 核心脚本… 117
9.1.3 接口… 118
9.1.4 游戏状态… 119
9.1.5 框架运行效果… 124
9.2 存储游戏数据… 126
9.3 添加游戏启动画面… 128
9.4 添加“胶囊”Player对象… 131
9.5 “胶囊”的设置… 133
9.5.1 添加脚本组件… 134
9.5.2 可以自转的胶囊… 134
9.5.3 胶囊的颜色选择… 139
9.5.4 胶囊生命值的设置… 143
9.5.5 切换到下一游戏状态… 144
9.6 胶囊的移动… 145
9.6.1 添加刚体组件… 146
9.6.2 负责移动效果的代码… 147
9.6.3 移动效果展示… 149
9.7 游戏视图的切换… 150
9.7.1 添加摄像机… 150
9.7.2 实现视图切换功能… 152
9.7.3 应用于游戏… 156
9.8 荒芜的星球及其原住民… 161
9.8.1 添加荒芜的地面… 161
9.8.2 原住民:益生菌和“埃博拉”病毒… 163
9.9 胶囊的进化之旅… 167
9.9.1 凶猛的埃博拉病毒… 167
9.9.2 病毒的净化过程… 170
9.9.3 触发净化的时机… 173
9.10 添加游戏分数与生命值… 176
9.10.1 游戏的规则… 176
9.10.2 分数和生命值的增减… 178
9.10.3 游戏各状态的切换… 179
9.10.4 游戏视图上的分数和生命值… 185
9.11 游戏流程图及源码概述… 186
9.11.1 游戏运行流程图… 187
9.11.2 核心脚本… 187
9.11.3 接口… 189
9.11.4 游戏状态… 189
9.11.5 其它功能脚本… 199
9.12 小结… 204
Comments are closed.