《Unity 3D网络游戏实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:罗培羽著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:7111549963
  • 页数:430 页
图书介绍:

第1章 掌握Unity3D基本元素 1

1.1 最最简单的游戏 2

1.1.1 Unity3D的界面构成 2

1.1.2 在场景中创建立方体 3

1.1.3 编写第一个程序 4

1.1.4 测试游戏 6

1.1.5 总结 6

1.2 导入资源 6

1.2.1 从本地导入素材 7

1.2.2 从本地导入包文件 7

1.2.3 从AssetStore导入 8

1.3 山体系统 10

1.4 灯光 12

1.5 材质 14

1.5.1 什么是材质 14

1.5.2 如何创建材质 15

1.5.3 MeshRenderer组件 16

1.5.4 着色器 16

1.6 预设 19

1.6.1 制作预设 19

1.6.2 预设的实例化 19

1.6.3 使用预设的例子 20

1.7 声音 22

1.7.1 音源 22

1.7.2 接收器 23

1.7.3 简单播放器 23

1.8 GUI 24

1.8.1 GUI绘图基础 24

1.8.2 编写HelloWorld程序 25

1.8.3 绘制登录框 25

1.9 场景 26

1.9.1 创建场景 27

1.9.2 场景切换 27

1.10 导出游戏 28

第2章 坦克控制单元 31

2.1 导入坦克模型 31

2.1.1 导入模型 31

2.1.2 调整尺寸 32

2.1.3 材质和贴图 33

2.2 行走控制 34

2.2.1 基础知识 35

2.2.2 上下左右移动 37

2.2.3 转向和前后移动 38

2.3 相机跟随 40

2.3.1 数学原理 41

2.3.2 跟随算法 42

2.3.3 设置跟随目标 46

2.3.4 横向旋转相机 47

2.3.5 纵向旋转相机 50

2.3.6 滚轮调节距离 51

2.4 旋转炮塔 52

2.4.1 坦克的层次结构 52

2.4.2 炮塔 56

2.4.3 炮管 58

2.5 车辆行驶 61

2.5.1 Unity3D的物理系统 62

2.5.2 车轮碰撞器 65

2.5.3 控制车辆 69

2.5.4 制动(刹车) 73

2.6 轮子和履带 74

2.6.1 轮子转动 74

2.6.2 履带滚动 77

2.7 音效 79

第3章 火炮与敌人 82

3.1 发射炮弹 82

3.1.1 制作炮弹 82

3.1.2 制作爆炸效果 83

3.1.3 炮弹轨迹 84

3.1.4 坦克开炮 86

3.2 摧毁敌人 88

3.2.1 坦克的控制类型 88

3.2.2 坦克的生命值 89

3.2.3 焚烧特效 89

3.2.4 坦克被击中后的处理 90

3.2.5 炮弹的攻击处理 92

3.3 准心 94

3.3.1 概念和原理 94

3.3.2 计算目标射击位置 96

3.3.3 计算实际射击位置 101

3.3.4 绘制准心 103

3.4 绘制生命条 104

3.4.1 生命条素材 105

3.4.2 绘制生命条 105

3.5 击杀提示 107

3.5.1 谁发射了炮弹 107

3.5.2 谁被击中 107

3.5.3 显示击杀提示 108

3.6 炮弹的音效 110

3.6.1 发射音效 110

3.6.2 爆炸音效 111

第4章 人工智能 113

4.1 基于有限状态机的人工智能 113

4.1.1 有限状态机 113

4.1.2 分层有限状态机 115

4.2 程序结构 116

4.2.1 AI类的结构 116

4.2.2 在Tank中调用 118

4.3 搜寻目标 119

4.3.1 搜寻规则 119

4.3.2 坦克标签 119

4.3.3 主动搜寻算法 120

4.3.4 被动搜寻算法 122

4.3.5 调试 123

4.4 向敌人开炮 124

4.4.1 电脑控制的方式 124

4.4.2 炮塔炮管的目标角度 125

4.4.3 调试程序 125

4.4.4 开炮 126

4.5 走向目的地 128

4.5.1 路点 128

4.5.2 路径 128

4.5.3 根据场景标志物生成路径 130

4.5.4 给AI指定路径 131

4.5.5 操控坦克 132

4.5.6 调试程序 136

4.6 使用NavMesh计算路径 137

4.6.1 NavMesh的原理 137

4.6.2 生成导航图 137

4.6.3 生成路径 140

4.7 行为决策 143

4.7.1 巡逻状态 144

4.7.2 进攻状态 145

4.7.3 调试 146

4.8 战场系统 147

4.8.1 单例模式 147

4.8.2 BattleTank 148

4.8.3 战场逻辑 148

4.8.4 敌我区分 150

4.8.5 出生点 151

4.8.6 坦克预设 152

4.8.7 开启一场两军对峙的战斗 152

4.8.8 战场结算 154

4.8.9 开始战斗 155

第5章 代码分离的界面系统 157

5.1 UnityUI系统 157

5.1.1 创建UI部件 158

5.1.2 Canvas画布 159

5.1.3 EventSystem 161

5.1.4 RectTransform 162

5.1.5 其他UGUI组件 164

5.1.6 事件触发 165

5.1.7 简单的面板调用 165

5.2 制作界面素材 167

5.2.1 标题面板和信息面板 167

5.2.2 制作预设 168

5.3 面板基类PanelBase 168

5.3.1 代码与资源分离的优势 168

5.3.2 面板系统的设计 169

5.3.3 面板基类的设计要点 169

5.3.4 面板基类的实现 170

5.4 面板管理器PanelMgr 172

5.4.1 层级管理 173

5.4.2 打开面板OpenPanel 174

5.4.3 关闭面板ClosePanel 176

5.5 面板逻辑 176

5.5.1 标题面板TitlePanel 176

5.5.2 信息面板InfoPanel 178

5.6 调用界面系统 179

5.6.1 界面系统的资源 179

5.6.2 界面系统的调用 179

5.7 胜负面板 181

5.7.1 面板素材 181

5.7.2 面板逻辑 181

5.7.3 面板调用 183

5.8 设置面板 184

5.8.1 面板素材 184

5.8.2 面板逻辑 185

5.8.3 面板调用 186

第6章 网络基础 188

6.1 七层网络模型 189

6.1.1 应用层 190

6.1.2 传输层 190

6.1.3 网络层 190

6.1.4 数据链路层 191

6.1.5 物理层 191

6.2 IP与端口 192

6.2.1 IP地址 192

6.2.2 端口 192

6.2.3 C#中的相关类型 193

6.3 TCP协议 193

6.3.1 TCP连接的建立 193

6.3.2 TCP的数据传输 195

6.3.3 TCP连接的终止 195

6.4 Socket套接字 196

6.4.1 Socket连接的流程 196

6.4.2 Socket类 196

6.5 同步Socket程序 198

6.5.1 新建控制台程序 198

6.5.2 编写服务端程序 199

6.5.3 客户端界面 202

6.5.4 客户端程序 203

6.6 异步Socket程序 205

6.6.1 BeginAccept 205

6.6.2 BeginReceive 205

6.6.3 Conn(state) 206

6.6.4 服务端程序(主体结构) 208

6.6.5 服务端程序(Accept回调) 210

6.6.6 服务端程序(接收回调) 211

6.6.7 开启服务端 212

6.6.8 客户端界面 212

6.6.9 客户端程序 213

6.6.10 调试程序 215

6.7 MySQL 216

6.7.1 配置MySQL环境 216

6.7.2 建立MySQL数据库 218

6.7.3 MySQL基础知识 218

6.7.4 MySQL留言板服务端程序 220

6.7.5 调试程序 222

6.8 类的序列化 223

6.9 定时器 225

6.10 线程互斥 226

6.11 通信协议和消息列表 228

6.11.1 通信协议 228

6.11.2 服务端程序 229

6.11.3 消息列表 229

6.11.4 客户端场景 230

6.11.5 客户端程序 231

6.11.6 调试 236

第7章 服务端框架 238

7.1 服务端架构 238

7.1.1 总体架构 238

7.1.2 游戏流程 239

7.1.3 连接的数据结构 240

7.1.4 数据库结构 241

7.1.5 项目结构 241

7.2 数据管理类DataMgr 243

7.2.1 数据表结构 243

7.2.2 角色数据 244

7.2.3 Player的初步版本 244

7.2.4 连接数据库 245

7.2.5 防止sql注入 246

7.2.6 Register注册 247

7.2.7 CreatePlayer创建角色 249

7.2.8 登录校验 250

7.2.9 获取角色数据 251

7.2.10 保存角色数据 252

7.2.11 调试 253

7.3 临时数据 255

7.4 网络管理类ServNet 256

7.4.1 粘包分包现象 256

7.4.2 粘包分包的处理方法 256

7.4.3 Conn连接类 257

7.4.4 ServNet网络处理类 260

7.4.5 ReceiveCb的粘包分包处理 261

7.4.6 发送消息 264

7.4.7 启动服务端 265

7.4.8 调试 265

7.5 心跳 267

7.5.1 心跳机制 267

7.5.2 时间戳 268

7.5.3 使用定时器 269

7.5.4 心跳协议 270

7.5.5 调试心跳协议 270

7.6 协议 271

7.6.1 协议基类 272

7.6.2 字符串协议 273

7.6.3 字节流协议 274

7.6.4 字节流辅助方法 276

7.6.5 使用协议 278

7.6.6 调试 280

7.7 中间层Player类 282

7.7.1 登录流程 282

7.7.2 下线 282

7.7.3 Player类的实现 283

7.8 消息分发 285

7.8.1 消息处理的类 285

7.8.2 消息处理类的实现 286

7.8.3 反射 287

7.9 注册登录 289

7.9.1 协议 289

7.9.2 注册功能 290

7.9.3 登录功能 291

7.9.4 登出功能 292

7.9.5 获取分数功能 293

7.9.6 增加分数功能 293

7.9.7 输出服务端信息 294

7.9.8 Main中的调用 294

7.9.9 测试用客户端 295

7.9.10 调试 297

第8章 客户端网络模块 300

8.1 网络模块设计 300

8.1.1 整体架构 300

8.1.2 监听表 301

8.1.3 类结构 301

8.2 委托 302

8.2.1 使用委托 302

8.2.2 示例 302

8.2.3 操作符 303

8.3 MsgDistribution消息分发 304

8.3.1 MsgDistribution的成员 304

8.3.2 DispatchMsgEvent 305

8.3.3 AddListener 306

8.4 Connection连接 307

8.4.1 Connection的成员 307

8.4.2 连接服务端 309

8.4.3 关闭连接 309

8.4.4 异步回调 310

8.4.5 消息处理 311

8.4.6 发送数据 311

8.4.7 心跳机制 312

8.5 NetMgr网络管理 313

8.6 登录注册功能 314

8.6.1 界面资源 315

8.6.2 登录面板功能 316

8.6.3 注册面板功能 319

8.7 位置同步的服务端程序 320

8.7.1 协议 321

8.7.2 场景 321

8.7.3 协议处理 324

8.7.4 事件处理 324

8.8 位置同步的客户端程序 325

8.8.1 客户端资源 325

8.8.2 客户端程序 326

8.9 调试框架 331

第9章 房间系统 334

9.1 游戏界面 335

9.1.1 登录面板 335

9.1.2 注册面板 336

9.1.3 提示面板 337

9.1.4 UGUI的滑动区域 338

9.1.5 房间列表面板 340

9.1.6 房间面板 342

9.1.7 创建预设 343

9.2 协议设计 344

9.3 提示框的功能实现 346

9.4 登录注册的功能实现 348

9.4.1 登录面板的功能 348

9.4 2 GameMgr 349

9.4.3 注册面板的功能 350

9.4.4 调试 351

9.5 房间列表面板的功能 352

9.5.1 获取部件 353

9.5.2 开启监听 354

9.5.3 刷新成绩栏 355

9.5.4 刷新房间列表 355

9.5.5 刷新按钮 357

9.5.6 加入房间 357

9.5.7 新建房间 358

9.5.8 登出 359

9.5.9 测试面板 360

9.6 房间面板的功能 360

9.6.1 获取部件 361

9.6.2 监听 362

9.6.3 刷新列表 362

9.6.4 退出按钮 364

9.6.5 开始战斗 365

9.6.6 测试面板 366

第10章 房间系统服务端 368

10.1 玩家数据 368

10.2 房间类 370

10.2.1 数据结构 370

10.2.2 添加玩家 371

10.2.3 删除玩家 372

10.2.4 更换房主 373

10.2.5 广播消息 373

10.2.6 输出房间信息 374

10.3 房间管理器 374

10.3.1 数据结构 374

10.3.2 创建房间 375

10.3.3 离开房间 376

10.3.4 输出房间列表 376

10.4 玩家消息处理 377

10.4.1 查询成绩GetAchieve 377

10.4.2 获取房间列表GetRoomList 377

10.4.3 创建房间CreateRoom 378

10.4.4 加入房间EnterRoom 379

10.4.5 获取房间信息GetRoomInfo 380

10.4.6 离开房间LeaveRoom 380

10.5 玩家事件处理 381

10.6 调试 382

第11章 战场系统 386

11.1 协议设计 386

11.2 开始战斗 388

11.2.1 客户端战场数据 389

11.2.2 获取阵营 390

11.2.3 清理场景 390

11.2.4 开始战斗 391

11.2.5 产生坦克 391

11.2.6 服务端战场数据 394

11.2.7 服务端条件检测 395

11.2.8 服务端开启战斗 395

11.2.9 服务端消息处理 396

11.2.10 调试程序 397

11.3 三种同步位置方案 398

11.3.1 瞬移式位置同步 399

11.3.2 移动式位置同步 400

11.3.3 预测式位置同步 401

11.4 位置同步的服务端处理 402

11.5 位置同步的客户端处理 404

11.5.1 发送同步信息 404

11.5.2 网络同步类型 405

11.5.3 预测目标位置 405

11.5.4 向目标位置移动 408

11.5.5 监听服务端协议 408

11.5.6 调试 409

11.6 同步炮塔炮管 410

11.7 轮子和履带 411

第12章 炮火同步 413

12.1 炮弹同步 413

12.1.1 协议设计 413

12.1.2 服务端处理 414

12.1.3 客户端发送同步信息 415

12.1.4 客户端接收同步信息 416

12.2 伤害同步 418

12.2.1 协议设计 418

12.2.2 服务端处理 418

12.2.3 客户端发送伤害信息 420

12.2.4 客户端接收伤害信息 420

12.3 胜负判断 423

12.3.1 协议设计 423

12.3.2 服务端胜负判断 423

12.3.3 服务端处理战斗结果 424

12.3.4 客户端接收战斗结果 425

12.4 中途退出 427

12.5 完整的游戏 428