图书介绍

Unity3D网络游戏实战【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

Unity3D网络游戏实战
  • 罗培羽著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111612179
  • 出版时间:2019
  • 标注页数:416页
  • 文件大小:137MB
  • 文件页数:434页
  • 主题词:游戏程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Unity3D网络游戏实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 网络游戏的开端:Echo1

1.1藏在幕后的服务端1

1.2网络连接的端点:Socket3

1.2.1 Socket3

1.2.2 IP地址3

1.2.3端口4

1.2.4 Socket通信的流程6

1.2.5 TCP和UDP协议7

1.3开始网络编程:Echo8

1.3.1什么是Echo程序8

1.3.2编写客户端程序8

1.3.3客户端代码知识点10

1.3.4完成客户端11

1.3.5创建服务端程序12

1.3.6编写服务端程序14

1.3.7服务端知识点15

1.3.8测试Echo程序15

1.4更多API16

1.5公网和局域网17

第2章 分身有术:异步和多路复用19

2.1什么样的代码是异步代码19

2.2异步客户端20

2.2.1异步Connect21

2.2.2 Show Me The Code22

2.2.3异步Receive23

2.2.4异步Send26

2.3异步服务端29

2.3.1管理客户端29

2.3.2异步Accept30

2.3.3程序结构31

2.3.4代码展示31

2.4实践:做个聊天室35

2.4.1服务端35

2.4.2客户端35

2.4.3测试36

2.5状态检测Poll36

2.5.1什么是Poll36

2.5.2 Poll客户端37

2.5.3 Poll服务端38

2.6多路复用Select41

2.6.1什么是多路复用41

2.6.2 Select服务端42

2.6.3 Select客户端44

第3章 实践出真知:大乱斗游戏45

3.1什么是大乱斗游戏45

3.2搭建场景46

3.3角色类Human49

3.3.1类结构设计49

3.3.2 BaseHuman49

3.3.3角色预设51

3.3.4 CtrlHuman54

3.3.5 SyncHuman57

3.4如何使用网络模块57

3.4.1委托57

3.4.2通信协议59

3.4.3消息队列60

3.4.4 NetManager类60

3.4.5测试网络模块64

3.5进入游戏:Enter协议66

3.5.1创建角色67

3.5.2接收Enter协议70

3.5.3测试Enter协议70

3.6服务端如何处理消息72

3.6.1反射机制72

3.6.2消息处理函数73

3.6.3事件处理74

3.6.4玩家数据76

3.6.5处理Enter协议77

3.7玩家列表:List协议77

3.7.1客户端处理78

3.7.2服务端处理79

3.7.3测试79

3.8移动同步:Move协议80

3.8.1客户端处理80

3.8.2服务端处理81

3.8.3测试81

3.9玩家离开:Leave协议82

3.9.1客户端处理82

3.9.2服务端处理82

3.9.3测试82

3.10攻击动作:Attack协议83

3.10.1播放攻击动作83

3.10.2客户端处理87

3.10.3服务端处理88

3.10.4测试88

3.11攻击伤害:Hit协议89

3.11.1客户端处理89

3.11.2服务端处理91

3.12角色死亡:Die协议91

3.12.1客户端处理91

3.12.2测试92

第4章 正确收发数据流94

4.1 TCP数据流94

4.1.1系统缓冲区94

4.1.2粘包半包现象96

4.1.3人工重现粘包现象97

4.2解决粘包问题的方法97

4.2.1长度信息法97

4.2.2固定长度法98

4.2.3结束符号法98

4.3解决粘包的代码实现99

4.3.1发送数据99

4.3.2接收数据99

4.3.3处理数据101

4.3.4完整的示例104

4.3.5测试程序106

4.4大端小端问题109

4.4.1为什么会有大端小端之分110

4.4.2使用Reverse()兼容大小端编码111

4.4.3手动还原数值111

4.5完整发送数据112

4.5.1不完整发送示例113

4.5.2如何解决发送不完整问题113

4.5.3 ByteArray和Queue117

4.5.4解决线程冲突120

4.5.5为什么要使用队列121

4.6高效的接收数据122

4.6.1不足之处122

4.6.2完整的ByteArray123

4.6.3将ByteArray应用到异步程序129

第5章 深入了解TCP,解决暗藏问题133

5.1从TCP到铜线133

5.1.1应用层133

5.1.2传输层134

5.1.3网络层135

5.1.4网络接口135

5.2数据传输流程136

5.2.1 TCP连接的建立136

5.2.2 TCP的数据传输137

5.2.3 TCP连接的终止138

5.3常用TCP参数138

5.3.1 ReceiveBufferSize138

5.3.2 SendBufferSize139

5.3.3 NoDelay139

5.3.4 TTL140

5.3.5 ReuseAddress141

5.3.6 LingerState142

5.4 Close的恰当时机144

5.5异常处理146

5.6心跳机制147

第6章 通用客户端网络模块148

6.1网络模块设计148

6.1.1对外接口148

6.1.2内部设计149

6.2网络事件150

6.2.1事件类型151

6.2.2监听列表151

6.2.3分发事件152

6.3连接服务端152

6.3.1 Connect152

6.3.2 ConnectCallback154

6.3.3测试程序155

6.4关闭连接156

6.4.1 isClosing157

6.4.2 Close157

6.4.3测试158

6.5 Json协议158

6.5.1为什么会有协议类158

6.5.2使用 JsonUtility159

6.5.3协议格式160

6.5.4协议文件161

6.5.5协议体的编码解码162

6.5.6协议名的编码解码163

6.6发送数据165

6.6.1 Send165

6.6.2 SendCallback166

6.6.3测试167

6.7消息事件168

6.8接收数据170

6.8.1新的成员171

6.8.2 ConnectCallback171

6.8.3 ReceiveCallback172

6.8.4 OnReceiveData172

6.8.5 Update174

6.8.6测试175

6.9心跳机制176

6.9.1 PING和PONG协议176

6.9.2成员变量177

6.9.3发送PING协议178

6.9.4监听PONG协议178

6.9.5测试179

6.10 Protobuf协议179

6.10.1什么是Protobuf179

6.10.2编写proto文件180

6.10.3生成协议类181

6.10.4导入protobuf-net.dll183

6.10.5编码解码183

第7章 通用服务端框架186

7.1服务端架构187

7.1.1总体架构187

7.1.2模块划分187

7.1.3游戏流程188

7.2 Json编码解码189

7.2.1添加协议文件189

7.2.2引用System.web.Extensions190

7.2.3修改MsgBase类191

7.2.4测试192

7.3网络模块193

7.3.1整体结构193

7.3.2 ClientState194

7.3.3开启监听和多路复用194

7.3.4处理监听消息196

7.3.5处理客户端消息197

7.3.6关闭连接198

7.3.7处理协议199

7.3.8Timer200

7.3.9发送协议201

7.3.10测试202

7.4心跳机制204

7.4.1 lastPingTime204

7.4.2时间戳204

7.4.3回应MsgPing协议205

7.4.4超时处理205

7.4.5测试程序206

7.5玩家的数据结构206

7.5.1完整的ClientState206

7.5.2 PlayerData208

7.5.3 Player208

7.5.4 PlayerManager209

7.6配置MySQL数据库211

7.6.1安装并启动MySQL数据库211

7.6.2安装Navicat for MySQL213

7.6.3配置数据表214

7.6.4 安装connector215

7.6.5 MySQL基础知识216

7.7数据库模块217

7.7.1连接数据库218

7.7.2防止SQL注入220

7.7.3IsAccountExist220

7.7.4 Register221

7.7.5 CreatePlayer223

7.7.6 CheckPassword224

7.7.7 GetPlayerData225

7.7.8 UpdatePlayerData226

7.8登录注册功能226

7.8.1注册登录协议227

7.8.2记事本协议228

7.8.3注册功能229

7.8.4登录功能229

7.8.5退出功能231

7.8.6 获取文本功能231

7.8.7 保存文本功能231

7.8.8客户端界面232

7.8.9 客户端监听233

7.8.10客户端注册功能235

7.8.11客户端登录功能235

7.8.12客户端记事本功能236

7.8.13测试236

第8章 完整大项目《坦克大战》239

8.1《坦克大战》游戏功能239

8.1.1登录注册239

8.1.2房间系统240

8.1.3战斗系统241

8.2坦克模型242

8.2.1导入模型242

8.2.2模型结构243

8.3资源管理器245

8.3.1设计构想245

8.3.2代码实现245

8.3.3测试246

8.4坦克类246

8.4.1设计构想246

8.4.2代码实现246

8.4.3测试247

8.5行走控制248

8.5.1速度参数249

8.5.2移动控制249

8.5.3测试250

8.5.4走在地形上251

8.6坦克爬坡253

8.6.1 Unity的物理系统253

8.6.2添加物理组件253

8.6.3测试254

8.7相机跟随255

8.7.1功能需求255

8.7.2数学原理255

8.7.3编写代码257

8.7.4测试258

8.8旋转炮塔260

8.8.1炮塔元素260

8.8.2旋转控制261

8.8.3测试262

8.9发射炮弹262

8.9.1制作炮弹预设262

8.9.2制作爆炸效果263

8.9.3炮弹组件264

8.9.4坦克开炮266

8.9.5测试268

8.10摧毁敌人269

8.10.1坦克的生命值269

8.10.2焚烧特效270

8.10.3坦克被击中处理271

8.10.4炮弹的攻击处理272

8.10.5测试272

第9章UI界面模块274

9.1界面模块的设计274

9.1.1简单的界面调用274

9.1.2通用界面模块275

9.2场景结构277

9.3面板基类BasePanel278

9.3.1设计要点278

9.3.2代码实现278

9.3.3知识点279

9.4界面管理器PanelManager281

9.4.1层级管理281

9.4.2打开面板282

9.4.3关闭面板284

9.5登录面板LoginPanel284

9.5.1导入资源284

9.5.2 UI组件286

9.5.3制作面板预设286

9.5.4登录面板类289

9.5.5打开面板289

9.5.6引用UI组件290

9.5.7网络监听291

9.5.8登录和注册按钮293

9.5.9 收到登录协议293

9.6注册面板RegisterPanel294

9.6.1制作面板预设294

9.6.2注册面板类296

9.6.3按钮事件298

9.6.4收到注册协议299

9.7提示面板TipPanel300

9.7.1制作面板预设300

9.7.2提示面板类301

9.7.3测试面板302

9.8游戏入口GameMain303

9.8.1设计要点303

9.8.2代码实现304

9.8.3缓存用户名305

9.9功能测试306

9.9.1登录306

9.9.2注册307

9.9.3下线309

第10章 游戏大厅和房间310

10.1列表面板预设311

10.1.1整体结构311

10.1.2个人信息栏312

10.1.3操作栏312

10.1.4房间列表栏313

10.1.5 Scroll View315

10.1.6列表项Room316

10.2房间面板预设318

10.2.1整体结构318

10.2.2 列表栏319

10.2.3列表项 player320

10.2.4控制栏322

10.3协议设计322

10.3.1查询战绩MsgGetAchieve协议323

10.3.2查询 房间列表MsgGetRoom-List协议323

10.3.3创建房间 MsgCreateRoom协议324

10.3.4进入房间 MsgEnterRoom协议324

10.3.5查询房间信息 MsgGetRoom-Info协议324

10.3.6退出房间 MsgLeaveRoom协议325

10.3.7开始战斗MsgStartBattle协议325

10.4列表面板逻辑326

10.4.1面板类326

10.4.2获取部件326

10.4.3网络监听328

10.4.4刷新战绩329

10.4.5刷新房间列表329

10.4.6 加入房间330

10.4.7创建房间331

10.4.8刷新按钮332

10.5房间面板逻辑332

10.5.1面板类332

10.5.2获取部件333

10.5.3网络监听334

10.5.4刷新玩家列表334

10.5.5退出房间336

10.5.6开始战斗336

10.6打开列表面板337

10.7服务端玩家数据337

10.7.1存储数据338

10.7.2临时数据338

10.8服务端房间类339

10.8.1管理器和房间类的关系339

10.8.2房间类的设计要点340

10.8.3添加玩家341

10.8.4选择阵营343

10.8.5删除玩家343

10.8.6选择新房主345

10.8.7广播消息345

10.8.8生成房间信息345

10.9服务端房间管理器347

10.9.1数据结构347

10.9.2获取房间347

10.9.3添加房间348

10.9.4删除房间348

10.9.5生成列表信息348

10.10服务端消息处理349

10.10.1查询战绩MsgGet-Achieve350

10.10.2查询房间列表MsgGetRoom-List350

10.10.3创建房间MsgCreate-Room351

10.10.4进入房间MsgEnterRoom351

10.10.5查询房间信息 MsgGet-RoomInfo352

10.10.6离开房间 MsgLeave-Room352

10.11玩家事件处理353

10.12测试354

第11章 战斗和胜负判定358

11.1协议设计358

11.1.1进入战斗MsgEnterBattle359

11.1.2战斗结果MsgBattleResult359

11.1.3退出战斗MsgLeaveBattle360

11.2坦克360

11.2.1不同阵营的坦克预设360

11.2.2战斗模块361

11.2.3同步坦克SyncTank362

11.2.4坦克的属性362

11.3战斗管理器363

11.3.1设计要点363

11.3.2管理器类363

11.3.3坦克管理364

11.3.4重置战场365

11.3.5开始战斗366

11.3.6产生坦克367

11.3.7战斗结束369

11.3.8玩家离开369

11.4战斗结果面板369

11.4.1面板预设369

11.4.2面板逻辑371

11.5服务端开启战斗373

11.5.1能否开始战斗373

11.5.2定义出生点373

11.5.3坦克信息376

11.5.4开启战斗377

11.5.5消息处理377

11.6服务端胜负判断378

11.6.1是否死亡379

11.6.2胜负决断函数379

11.6.3定时器380

11.6.4 Room::Update380

11.7服务端断线处理381

11.8测试382

11.8.1进入战场382

11.8.2离开战场384

第12章 同步战斗信息386

12.1同步理论387

12.1.1同步的过程387

12.1.2同步的难题387

12.2状态同步389

12.2.1直接状态同步389

12.2.2跟随算法390

12.2.3预测算法390

12.3帧同步391

12.3.1指令同步391

12.3.2从Update说起392

12.3.3什么是同步帧393

12.3.4指令394

12.3.5指令的执行394

12.4协议设计395

12.4.1位置同步MsgSyncTank396

12.4.2开火MsgFire396

12.4.3击中MsgHit397

12.5发送同步信息397

12.5.1发送位置信息397

12.5.2发送开火信息398

12.5.3发送击中信息399

12.6处理同步信息400

12.6.1协议监听400

12.6.2 OnMsgSyncTank401

12.6.3 OnMsgFire401

12.6.4 OnMsgHit402

12.7同步坦克SyncTank402

12.7.1预测算法的成员变量402

12.7.2移动到预测位置403

12.7.3 初始化404

12.7.4更新预测位置405

12.7.5炮弹同步406

12.8服务端消息处理406

12.8.1位置同步MsgSyncTank407

12.8.2 开火MsgFire408

12.8.3 击中MsgHit409

12.8.4调试410

12.9完善细节412

12.9.1滚动的轮子和履带412

12.9.2灵活操作413

12.9.3准心413

12.9.4 自动瞄准414

12.9.5界面和场景优化414

12.9.6 战斗面 板415

12.9.7击杀提示416

12.10结语416

热门推荐