第1篇Unity基础(客户端) 2
第1章Unity介绍与相关环境的搭建和调试 2
1.1 Unity引擎介绍 2
1.1.1 Unity3D引擎部分 2
1.1.2 Unity3D编辑器部分 3
1.2 Unity引擎发展 5
1.3 Unity 引擎应用场景和使用范围介绍 5
1.4 Unity软件安装 7
1.5 Unity Windows环境的安装和搭建 9
1.6 Unity Android环境的安装和搭建 11
1.7 Unity授权 15
1.8 Unity服务 16
第2章 编写Hello World与仿真系统体验 18
2.1创建第一个空的工程 18
2.2创建第一个脚本程序 20
2.3编写第一个Hello Word程序 21
2.4编译输出第一个程序 22
2.5运行Hello World 23
2.6打开仿真程序Demo 23
2.7这是一个很好玩的仿真系统 25
2.8进入训练场准备体验训练操作 25
2.9控制人物行走 26
2.10开动第一辆汽车 27
2.11完成第一个仿真任务 27
2.12本章小结与分析 28
第3章Unity游戏开发语言 29
3.1 C#语言介绍 29
3.2 C#常用数据结构介绍 31
3.2.1 ArrayList链表结构 31
3.2.2泛型List 31
3.2.3 Stack栈 32
3.2.4队列Queue 33
3.2.5字典Dictionary 34
3.3 C#的接口与继承 35
3.3.1实现继承和接口继承 35
3.3.2多重继承 35
3.3.3结构的继承 35
3.4 C#的委托 37
3.5 C#多线程使用介绍 38
3.6 C#的反射机制 39
3.7 Unity中使用泛型 42
3.8 Unity中使用协程 42
3.9 Unity的序列化和网络协议库介绍 45
3.10 Unity中使用CLR进行Native交互 46
3.11 Unity中使用热更新语言Lua 47
3.12本章小结与分析 50
第4章在Unity中使用图形学知识 51
4.1 3D数学基本知识在游戏中的应用 51
4.2三维坐标系 52
4.3顶点坐标变换 53
4.3.1向量是什么 53
4.3.2矩阵是什么 54
4.3.3如何操作向量 55
4.3.4如何处理点或者向量与矩阵的乘法 55
4.3.5点和向量通过矩阵的变换 56
4.4光照与材质 58
4.4.1什么是Shader的基本光照模型 59
4.4.2什么是光照模型 59
4.4.3什么是材质 61
4.5 Unity引擎中的渲染管线流程 67
4.6 Unity中实现模型的缩放和旋转等程序处理 70
4.7 Unity中计算射线相关的程序处理 74
4.8 Unity中制作一个简单的渲染特效 77
4.9本章小结与分析 84
第5章Unity编辑器的使用 86
5.1创建一个空的工程 86
5.2编辑器界面布局介绍 88
5.3编辑器的常用功能介绍 89
5.4编辑器模型编辑——旋转控制第一个模型 95
5.5编辑器动作骨骼编辑——让人物动起来 96
5.6编辑器光照和相机的编辑——让人物更真实 98
5.7编辑器粒子特效编辑——让环境更绚丽 101
5.8编辑器场景编辑——创建简单的战场 104
5.9编辑器地形和光照贴图烘焙——让战场真实起来 105
5.10编辑器遮挡剔除——提高战场的运行效率 107
5.11 编辑器资源管理——让1程更容易管理 109
5.12编辑器控制台和调试——输出调试信息 110
5.13编辑器资源商店和常用插件 111
5.14编辑器材质编辑——让车辆变化一下样式 114
5.15 编辑器物理系统介绍——让人和车辆发生碰撞 116
5.16本章小结与分析 118
第2篇Unity实战(客户端) 122
第6章 虚拟仿真训练系统的架构和模块 122
6.1什么是虚拟仿真训练 122
6.1.1战斗模拟仿真训练 122
6.1.2车辆仿真和工业操作 123
6.2物理架构介绍——虚拟仿真训练系统 123
6.3使用态势端发布授权任务 126
6.4将分队长学员配置加入授权任务 127
6.5启动仿真任务——完成一次美妙的任务体验 128
6.6本章小结与分析 130
第7章 人物资源编辑与程序开发 132
7.1模型资源的导入和整理编辑 132
7.2人物动作资源的编辑和管理 134
7.3数据资源的导入和整理 137
7.4人物的控制和脚本程序开发 141
7.5人物的行为状态机开发 147
7.6人物特效的控制和状态交互 150
7.7人物的物理状态和碰撞瞄准的程序交互 151
7.8人物的属性和程序接口开发 154
7.9在场景中运行人物资源和调试程序 158
7.10本章小结与分析 159
第8章 场景资源编辑与程序开发 161
8.1场景资源的导入和整理管理 161
8.2场景数据资源的导入和场景程序管理 162
8.3地形的编辑和程序相关功能开发 169
8.4添加碰撞体树木和非碰撞体植被 172
8.5创建光源和阴影渲染 174
8.6添加场景静态物体和动态物体 176
8.7添加场景水的插件并使用代码集成 182
8.8添加天气系统插件并集成代码系统 187
8.9添加场景道路插件并制作道路 192
8.10添加天空盒和雾态效果 194
8.11场景预览和渲染效率优化 196
8.12场景系统加载切换和系统程序开发 198
8.13本章小结与分析 202
第9章 资源组件和交互物品开发 203
9.1资源组件的导入和整理管理 203
9.2资源物品的数据导入和整理管理 205
9.3 AssetBundle的资源组成和功能API 207
9.4开发自己的AssetBundle打包工具插件 208
9.5加载和管理AssetBundle资源 212
9.6车辆动力系统的插件使用和系统集成开发 216
9.7关于飞行器直升机的开发和使用 223
9.8地雷组件的开发和功能交互 225
9.9物品管理器系统开发 230
9.10本章小结与分析 235
第10章NGUI组件开发和操作交互开发 236
10.1 NGUI插件介绍和导入工程 236
10.2 NGUI图集的使用和制作 237
10.3 NGUI图集的优化和DrawCal l的优化策略 239
10.4 NGUI的底层实现原理和分析 240
10.5 UILable的使用 242
10.6 UISprite的使用 243
10.7 UIPanel的使用 244
10.8 UIScrollView的使用 245
10.9 UIButton的使用 247
10.10 UIRoot和UICamera的自适应 250
10.11打造UI面向对象的动态加载和管理 251
10.12登录UI功能开发 257
10.13大厅任务信息系统UI功能开发 261
10.14战场场景中主视角UI系统功能开发 268
10.15 VR开发——VR可以使用的VRGUI 276
10.16本章小结与分析 277
第3篇C+网络开发基础(服务器) 280
第11章C++语言基础 280
11.1 C+++简介 280
11.2 C+++基本语法 281
11.3 C+++数据结构 283
11.4 C+++变量类型 289
11.5 C+++修饰符类型 290
11.6 C+++存储类 291
11.7 C+++运算符和运算方式 294
11.8 C+++函数 297
11.9 C+++数组和高级功能 300
11.10 C+++指针和高级功能 301
11.11 C+++引用和常用方式 303
11.12 C+++类和对象 305
11.13 C+++继承和多态 307
11.14 C+++接口和抽象 309
11.15 C+++文件和流的处理 311
11.16 C+++STL库介绍 314
11.17本章小结与分析 319
第12章C++网络编程基础 321
12.1 Socket套接字 321
12.2套接字寻址方式 326
12.3 Winsocket网络程序开发流程 328
12.4在Visual Studio中创建网络工程 330
12.5 Winsocket编程准备 331
12.6基于TCP的Socket编程 332
12.7基于UDP的Socket编程 336
12.8本章小结与分析 343
第13章 多线程和异步套接字 345
13.1 C+++多线程开发 345
13.2 C+++多线程互斥对象和同步 347
13.3 C+++进程间通信 350
13.4 C+++设置异步I/O的模式和方法 356
13.5本章小结与分析 358
第14章MySQL数据库的使用 359
14.1 MySQL数据库介绍和使用范围 359
14.2安装MySQL数据库 360
14.3 MySQL可视化管理工具的使用 362
14.4使用C+++连接MySQL数据库 364
14.5 SQL语句和语法 369
14.6 MySQL备份导出数据和导入转移数据 371
14.7本章小结与分析 374
第15章 网络协议Protobuf的使用 376
15.1什么是Protobuf 376
15.2 Protobuf的功能是什么 378
15.3 Protobuf序列化的原理是什么 385
15.4如何编写Protobuf的.proto文件 387
15.5如何编译和生成Protobuf的编译程序 389
15.6使用Protobuf协议制作一段网络小程序 392
15.7本章小结与分析 399
第4篇C+网络开发实战(服务器) 402
第16章 设计架构简单的互动服务器体系 402
16.1 Visio:一个绘制架构图的软件 402
16.2如何使用图和连接线来表示架构 404
16.3需要哪些服务来构建整个服务体系 406
16.4登录服务器(LoginServer) 407
16.5网关服务器(GateServer) 410
16.6中心服务器(CenterServer) 413
16.7战场服务器(BattleServer) 414
16.8本章小结与分析 418
第17章 开发登录服务器LoginServer 420
17.1登录服务器的作用 420
17.2使用Protobuf生成登录授权文件和协议 421
17.3创建LoginServer网络会话层底层模块 429
17.4创建LoginServer服务逻辑模块 436
17.5导入LoginServer的Protobuf协议 440
17.6客户端Protobuf协议的导入和使用 443
17.7从客户端登录到授权的逻辑处理过程 445
17.8启动LoginServer,完成第一次授权登录 449
17.9 Redis缓存存储和信息处理 450
17.10本章小结与分析 452
第18章 开发网关服务器GateServer 453
18.1网关服务器及其作用 453
18.2创建GateServer的框架主程序 454
18.3创建网关转发和验证所需要的Protobuf协议脚本 461
18.4生成服务器所需要的C+++协议程序 464
18.5生成客户端所需要的C#协议程序 466
18.6完成网关服务器的逻辑功能开发 468
18.7完成客户端从网关授权进入大厅的逻辑 478
18.8本章小结与分析 481
第19章 开发中心服务器CenterServer 482
19.1中心服务器及其作用 482
19.2创建CenterServer框架主程序 484
19.3创建中心服务器的Protobuf协议脚本 488
19.4生成服务器所需要的C+++协议程序 495
19.5生成客户端所需要的C#协议程序 497
19.6生成服务器data数据和协议代码 500
19.7完成中心服务器的逻辑功能开发 504
19.8启动客户端完成任务配置并开始仿真任务 513
19.9本章小结与分析 520
第20章 开发战场服务器BattleServer 522
20.1战场服务器及其作用 522
20.2创建BattleServer框架主程序 524
20.3创建战场服务器Protobuf协议脚本 527
20.4生成服务器所需要的C+++协议程序 537
20.5生成客户端所需要的C#协议程序 539
20.6生成服务器data数据和协议代码 550
20.7创建战场服务器的聊天模块 553
20.8创建战场逻辑模块 556
20.9创建战场仿真人员同步模块 558
20.10创建战场仿真车辆和飞行器模块 564
20.11创建战场动态资源管理和监控模块 568
20.12创建战场AI仿真敌人和飞行器AI状态机 571
20.13调试战场服务器和客户端,启动仿真任务 576
20.14本章小结与分析 579
第21章 一些仿真框架和人工智能的介绍 581
21.1 VR-LINK与HLA框架:高层体系模型框架的使用 581
21.2游戏中常用的人工智能算法和深度学习引申 584
后记——全书总结与个人发展建议 588