版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1页 第2页 11.1.1Network类 部分变量名及其含义的详细介绍 变量名说明变量名说明 connections所有连接的玩家connectionTesterP ort 用在Network.TestConnection中 的连接测试的端口 connectionTesterIP用在Network.TestConnection中的 连接测试的IP地址 logLevel设置用于网络消息的日志级别 (默认是关闭的) isClient如果端点类型是客户端,返回trueisServer如果端点类型是服务器,返回 true incomingPassword为服务器设置密码(入站连接)maxConne
2、ctions设置允许连接(玩家)的最大 数量 natFacilitatorPortNAT穿透服务商的端口peerType端类型的状态,即disconnected, connecting, server 或 client四种 proxyPassword设置代理服务器的密码proxyPort代理服务器的端口 sendRate用于所有网络视图,网络更新的 默认发送速率 第3页 11.1.1Network类 网络类所提供的静态方法 方法名说明方法名说明 AllocateViewID查询下一个可用的网络 视图ID号并分配它 (保留) Connect连接到特定的主机(IP或域名) 和服务器端口 Close
3、Connection关闭与其他系统的连接Destroy跨网络销毁与该viewID相关的物 体 InitializeSecurity初始化安全层InitializeServer初始化服务器 DestroyPlayerObj ects 基于viewID销毁所有属 于这个玩家的所有 物体 Disconnect关闭所有开放的连接并关闭网络 接口 Instantiate网络实例化预设RemoveRPCs移除所有与这个viewID数相关的 RPC函数调用 第4页 11.1.1Network类 相关的函数 方法名说明 OnConnectedToServer当成功连接到服务器时,在客户端调用这个函数 OnDi
4、sconnectedFromServer在服务器上当连接已经断开,在客户端调用这个函数 OnFailedToConnect当一个连接因为某些原因失败时,从客户端调用这个函数 OnNetworkInstantiate当一个物体使用Network.Instantiate已经网络实例化,在该物体上调用这 个函数 OnPlayerConnected每当一个新玩家成功连接时,在服务器上调用这个函数 OnPlayerDisconnected每当一个玩家从服务器断开时,在服务器调用这个函数 OnSerializeNetworkView用来在一个由网络视图监控的脚本中自定义变量同步 OnServerIniti
5、alized每当一个Network.InitializeServer被调用并完成时,在服务器上调用这个 函数 第5页 11.1.2NetworkView组件 Network view组件包括远程过程调用和状组件包括远程过程调用和状 态同步两种网络功能,在开发游戏时必须态同步两种网络功能,在开发游戏时必须 创建一个添加了创建一个添加了Network View组件的游戏组件的游戏 对象。具体操作是单击指定的游戏对象,对象。具体操作是单击指定的游戏对象, 然后在然后在Inspector视图中点击视图中点击 “Add Component”“Miscellaneous”“Netw ork View”,如
6、图,如图11-1所示。所示。 图11-1 Network View组件添加 第6页 11.2.1场景搭建 该案例实现了从任意一端能够操作各自角色工人进行奔跑操作的同步效果该案例实现了从任意一端能够操作各自角色工人进行奔跑操作的同步效果 (1)首先创建一个工程项目,并命名为)首先创建一个工程项目,并命名为“BNUNetwork”。创建一个名为。创建一个名为“Prefab” 的空文件夹,并将随书光盘的资源目录下第的空文件夹,并将随书光盘的资源目录下第11章的章的“BNUNetwork”工程文件下的工程文件下的 “Environment”拷备进项目中的该文件夹下,然后拖拽进场景中,并调整位置和大拷备
7、进项目中的该文件夹下,然后拖拽进场景中,并调整位置和大 小,如图小,如图11-2所示。所示。 图11-2 Environment参数设置 第7页 11.2.1场景搭建 (2)单击)单击GameObject”“Light” “Directional Light”在场景中添加一在场景中添加一 个平行光源,并设置位置、大小和朝个平行光源,并设置位置、大小和朝 向,如图向,如图11-3所示。所示。 图11-3 平行光参数设置 第8页 11.2.1场景搭建 (3)单击“GameObject”“Create Empty”创建一个空的GameObject对象,并重 命名为“Spawn”,设置其位置和朝向,如
8、图11-4所示。按照相同步骤再创建一个空 的GameObject对象,并重命名为“ServerConnect”,设置其位置和朝向,如图11-5 所示。 图11-4 Spawn参数设置图11-5 ServerConnect参数设置 第9页 11.2.1场景搭建 (4)然后点击)然后点击“Assets”“Import Package”“Character”,将,将Unity部分资源导入到项部分资源导入到项 目中,如图目中,如图11-6所示。所示。Import package对话框里只勾选所需要的对话框里只勾选所需要的Unity工人模型资源,如图工人模型资源,如图 11-7所示。点击所示。点击 “I
9、mport”导入项目中。导入项目中。 图11-6 导入资源 图11-7 选择资源 第10页 11.2.1场景搭建 (5)将随书光盘的资源目录下第)将随书光盘的资源目录下第11章的章的“BNUNetwork”工程文件下的工程文件下的Constructor.FBX模型文件拷入模型文件拷入 项目,然后在项目,然后在Inspector视图中选中视图中选中Rig,并把,并把Animation Type修改为修改为“Humanoid”,如图,如图11-8所示。然所示。然 后把后把Constructor模型拖拽到场景中,并在模型拖拽到场景中,并在Prefabs文件中为其新建一个预制件,如图文件中为其新建一个
10、预制件,如图11-9所示。所示。 图11-8 转换Animation Type 图11-9 制作Worker预制件 第11页 11.2.1场景搭建 (6)单击)单击“Window”“Animator”添加添加Animator视窗,如图视窗,如图11-10所示。然后创建一个所示。然后创建一个Avatar控制器,控制器, 并命名为并命名为AniControll,从资源文件夹中的,从资源文件夹中的Animation文件夹中把文件夹中把“idle”和和“run”两个动作动画片段拖拽两个动作动画片段拖拽 上上Animator视图里,并设置其中的视图里,并设置其中的Layers和和Parameters参数
11、,如图参数,如图11-11和图和图11-12所示。所示。 图11-10 添加Animator视窗 图11-11 Parameters参数设置 图11-12 Layer参数设置 第12页 11.2.1场景搭建 (7)选中Worker预制件对象,单击“Component”“Miscellaneous”“Animator” 为 其 添 加 A n i m a t o r 组 件 , 参 数 设 置 如 图 1 1 - 1 3 所 示 。 然 后 单 击 “Component”“Miscellaneous”“NetWork View”,为其添加Network View组件。 图11-13 Animat
12、or参数设置 第13页 11.2.1场景搭建 (8)选中)选中Worker预制件对象,单击预制件对象,单击“Component”“Physics”“Character Controller”为为Worker预制件添加角色控制器组件。然后在预制件添加角色控制器组件。然后在Inspector视图里设置视图里设置 Character Controller角色控制器的各个参数值,如图角色控制器的各个参数值,如图11-14所示。所示。 图11-14 Character Controller参数设置 第14页 11.2.1场景搭建 (9)从资源文件夹把EasyTouch插件导 入到项目中,导入完成后在Un
13、tiy菜单栏 会生成“Hedgehog Team”一栏。单击 “Hedgehog Team”“EasyTouch” “Extensions”“Adding a new joystick”, 添加摇杆,并重命名为“myJoystick”, 最后为其设置参数,如图11-15所示。 图11-15 摇杆myJoystick参数设置 第15页 11.2.2脚本开发 (1)新建一个名为)新建一个名为“Script”的文件夹,并在其中新建一个的文件夹,并在其中新建一个C#脚本,脚本, 并命名为并命名为“BNUServerConnect”。然后双击脚本,开始代码的编写。然后双击脚本,开始代码的编写。 本脚本主
14、要是通过判断项目运行平台来控制服务器或者客户端是否启本脚本主要是通过判断项目运行平台来控制服务器或者客户端是否启 用,可以说是整体连接的重要部分,具体脚本代码见课本。用,可以说是整体连接的重要部分,具体脚本代码见课本。 (2)新建一个)新建一个C#脚本,并重名命为脚本,并重名命为“BNUCreatePer”。然后双击脚。然后双击脚 本,开始脚本的编写。本脚本主要通过重写本,开始脚本的编写。本脚本主要通过重写OnServerInitialized等数等数 个网络自行调用方法,实现通过服务器的信息传递在各个客户端创建个网络自行调用方法,实现通过服务器的信息传递在各个客户端创建 唯一的角色,具体脚本
15、代码如下。唯一的角色,具体脚本代码如下。 (3)将已经编写好的)将已经编写好的“BNUServerConnect.cs”脚本拖拽到脚本拖拽到 ServerConnect对象上,如图对象上,如图11-16所示。接着将里编写好的所示。接着将里编写好的 “BNUCreatePer.cs”脚本拖拽到脚本拖拽到Spawn对象上,并把预制件对象上,并把预制件Worker 拖拽到拖拽到Player Prefab栏上,如图栏上,如图11-17所示。所示。 第16页 11.2.2脚本开发 图11-16 挂载脚本ServerConnect图11-17 脚本CreatePlayer参数设置 第17页 11.2.2脚
16、本开发 ( 4 ) 在) 在 S c r i p t 文 件 夹 中 新 建 一 个文 件 夹 中 新 建 一 个 C # 脚 本 , 并 重 命 名 为脚 本 , 并 重 命 名 为 “BNUPlayerCtrol”。然后双击脚本,进行脚本的编写。本脚本主要。然后双击脚本,进行脚本的编写。本脚本主要 通过重写通过重写Update方法改变传递的参数,并且通过方法改变传递的参数,并且通过RPC方法远程调用方法远程调用 Unity Networking在各个客户端同步各个玩家角色的状态和动画同步。在各个客户端同步各个玩家角色的状态和动画同步。 具体脚本代码如下。具体脚本代码如下。 ( 5 ) 在)
17、 在 S c r i p t 文 件 夹 中 新 建 一 个文 件 夹 中 新 建 一 个 C # 脚 本 , 并 重 命 名 为脚 本 , 并 重 命 名 为 “BNUMoveController”。在此脚本中主要通过重写。在此脚本中主要通过重写EasyTouch的的 OnJoystickMove等方法,调用等方法,调用EasyTouch摇杆实时改变摇杆实时改变 “PlayerControl.cs”里的静态变量,实现角色的操控。里的静态变量,实现角色的操控。 第18页 11.2.2脚本开发 (6)将已经编写的)将已经编写的“BNUPlayerCtrol.cs”脚本拖拽到预制件脚本拖拽到预制件
18、Worker上,如图上,如图11-18所示。所示。 单击预制件单击预制件Worker,在,在Inspector面板中,把面板中,把Worker的的“BNUPlayerCtrol.cs”脚本组件拖拽脚本组件拖拽 到到“Network View”组件的组件的Observed一栏上,如图一栏上,如图11-19所示。所示。 图11-18 添加脚本组件 图11-19 Network View参数设置 第19页 11.2.3服务器和客户端的发布 此项目需要分成服务器和客户端两方面发布,服务器端需要在此项目需要分成服务器和客户端两方面发布,服务器端需要在PC平台平台 上发布成为一个上发布成为一个.exe文件
19、,客户端则在文件,客户端则在Android平台上发布成为一平台上发布成为一 个个.apk文件,并安装在手机上。文件,并安装在手机上。 (1)单击)单击“File” “Build Settings”,进入到,进入到Build Settings窗口,窗口, 如图如图11-20所示。选择发布平台为所示。选择发布平台为PC平台,点击平台,点击“Add Current”按钮按钮 添加场景,勾选上当前场景添加场景,勾选上当前场景“NetworkPlay”,单击,单击“Build”按钮发布按钮发布 项目,如图项目,如图11-21所示。并命名为所示。并命名为“NetServer.exe”。 第20页 11.2.3服务器和客户端的发布 图11-20 打开Build Settings图11-21 将项目发布平台设为PC端 第21页 11.2.3服务器和客户端的发布 (2)再次打开)再次打开Build Settings窗口,选择发布平台为窗口,选择发布平台为Android平台,然后点击平台,然后点击“Player Settings”进行设置。选中进行设置。选中“Settings for Android”“Resolution and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年氟铝酸钙锂晶体(LICAALF)合作协议书
- 变电站生产安全操作规程(标准版)
- 宾馆公共场所卫生管理制度5篇
- 高考理科数学第一轮专题计数原理概率与统计测试题参考答案
- 病理学测试题库及答案
- 国家开放大学电大专科《病理学与病理生理学》2026年期末试题及答案
- 2025年涨紧轮合作协议书
- 自动化数据验证框架
- 汽车维修服务操作规范与流程
- 房地产开发与销售流程指南
- 2026版离婚协议书(官方标准版)
- 医患沟通学与医学的关系
- 严厉的主奴协议书
- 2026年区块链基础培训课件与可信数据应用场景指南
- 《多元统计分析》(第6版)课件 第1章 多元正态分布及其抽样分布
- 不良事件上报流程及处理
- 妇产科护士长工作总结范文
- 娱乐场所合作协议书合同
- 派出所安全培训
- 物业会计知识培训内容
- 轧钢工艺培训课件模板
评论
0/150
提交评论